在我们的产品中,我们有与API交互的移动应用,该API针对IdentityServer 4
进行身份验证,
该企业对使用同一个人的电话(SMS身份验证)或用户名身份验证的登录设置了要求。
我找到了这个示例项目,以便通过手机短信登录,效果很好:
IdentityServer4.PhoneNumberAuth
我还如何结合用户名登录?
答案 0 :(得分:0)
创建一个继承自IUserStore的自定义UserStore。请参考以下代码段,以用户名,电子邮件或电话号码登录。
public partial class UserStore : IUserStore<ApplicationUser>
{
//Other method implementation
public Task<ApplicationUser> FindByNameAsync(string normalizedUserName, CancellationToken cancellationToken)
{
cancellationToken.ThrowIfCancellationRequested();
ThrowIfDisposed();
if (normalizedUserName == null)
{
throw new ArgumentNullException(nameof(normalizedUserName));
}
return Task.FromResult(authDbContext.Users.FirstOrDefault(u => u.NormalizedUserName == normalizedUserName
|| u.PhoneNumber == normalizedUserName || u.NormalizedEmail == normalizedUserName));
}
}