在 IdentityServer4 和 Dotnet Core Identity 中使用带有身份验证 (oidc) 的 sms otp
Posted
技术标签:
【中文标题】在 IdentityServer4 和 Dotnet Core Identity 中使用带有身份验证 (oidc) 的 sms otp【英文标题】:Using sms otp with authentication (oidc) in IdentityServer4 and Dotnet Core Identity 【发布时间】:2020-04-15 15:33:45 【问题描述】:我正在使用 Identity Server 4 和 Dotnet Core Identity 进行身份验证服务。身份验证服务有自定义的 react spa。
我正在尝试开始使用他们的手机号码对用户进行身份验证。我有一个用户数据(电子邮件、密码、电话号码等) 我想要这个步骤;
-
用户:输入电子邮件和密码(完成)
服务器:发送带有代码的短信到手机号码(?),我有一个短信服务器
用户:短信输入代码
服务器:发送访问令牌(完成)
我使用这个例子开发了一个项目。 https://github.com/karpikpl/identity-server4-with-SPA-UI
我不知道如何整合两个因素,有什么可以帮助您的吗?谢谢。
【问题讨论】:
【参考方案1】: 此问题的解决方案如下:第 1 步 在您的 IDP(身份验证服务器)中生成 SMS 代码。
第 2 步 将该 SMS 代码存储为具有到期时间(如果需要)的用户的声明。
第 3 步 当用户使用他的用户名登录您的 IDP 时,您可以将用户输入的 SMS 代码与您作为用户声明存储在 DB 中的代码进行比较。另外,您可能需要检查 SMS 代码的到期时间。
第 4 步 如果一切正常,那么您删除该用户的声明,然后将他登录到您的 IDP 并完成。
【讨论】:
以上是关于在 IdentityServer4 和 Dotnet Core Identity 中使用带有身份验证 (oidc) 的 sms otp的主要内容,如果未能解决你的问题,请参考以下文章
IdentityServer4 令牌发行者和消费者在同一个项目中
IdentityServer4 - 刷新令牌混合流程 - Cookie 和存储
如何使用 IdentityServer4 访问令牌和 [Authorize] 属性
如何在 identityserver4 中没有用户名和密码的情况下从令牌端点获取令牌?
在 IdentityServer4 和 Dotnet Core Identity 中使用带有身份验证 (oidc) 的 sms otp