我正在使用WebAPI 2后端构建SPA应用程序。我正在使用新的ASP.NET Identity 2.0进行授权和身份验证。要登录,我调用/ Token URL,该URL返回用于后续API调用的令牌。现在所有这些工作正常。
现在,我需要对登录/身份验证过程进行一些更改,在该过程中,我想在返回令牌之前检查电子邮件是否已确认以及用户是否处于活动状态(两个数据库字段)。但是我找不到正在调用哪种方法进行授权。我以为这是AccountController中的GetExternalLogin方法,但事实并非如此。
有人可以告诉我我需要在哪里更改登录逻辑吗?
您将需要实现自己的UserStore来实现自己的身份验证逻辑。
请参阅此SO问题
如果您不想这样做,可以在in ApplicationOAuthProvider.cs
this function中找到GrantResourceOwnerCredentials
。在这行之后
IdentityUser user = await userManager.FindAsync(context.UserName,
context.Password);
您也许可以挤入一些自定义逻辑,例如
if (IsEmailConfirmed(user) == false)
{
context.SetError("invalid_grant", "The user name or password is incorrect.");
return;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句