Rem*_*Rem 4 asp.net-core identityserver4
我使用带有 ASP.NET Core Identity 的 IdentityServer4 的 ROPC 流,我需要将用户名和密码发送到 /connect/token 端点以获取 access_token。
如何配置 IdentityServer4 以在 /connect/token 请求中接受用户名或电子邮件和密码?
PS:asp.net 核心:2.0.2 IdentityServer4:2.0.2
找到了这个解决方案:
1) 将文件 IdentityServer4.AspNetIdentity/src/IdentityServer4.AspNetIdentity/ResourceOwnerPasswordValidator.cs 从https://github.com/IdentityServer/IdentityServer4.AspNetIdentity/blob/dev/src/IdentityServer4.AspNetIdentity/ResourceOwnerPasswordValidator.cs复制到您的项目
2) 修复 ValidateAsync 方法以通过电子邮件查找用户
var user = await _userManager.FindByNameAsync(context.UserName);
if (user == null) {
user = await _userManager.FindByEmailAsync(context.UserName);
}
Run Code Online (Sandbox Code Playgroud)
3) 向 IS4 添加验证器:
.AddAspNetIdentity<AppUser>()
.AddResourceOwnerValidator<Services.ResourceOwnerPasswordValidator<AppUser>>();
Run Code Online (Sandbox Code Playgroud)
4)利润!
归档时间: |
|
查看次数: |
779 次 |
最近记录: |