gpt4 book ai didi

asp.net-core - 是否可以/应该使用 IdentityServer4 创建用于用户电子邮件验证的 token

转载 作者:行者123 更新时间:2023-12-02 08:43:55 25 4
gpt4 key购买 nike

我已经为 API 身份验证设置了 IdentityServer4,尽管我有一个用例,我想验证 guest (用户)本质上是有效用户。在我的例子中,有效用户是拥有有效电子邮件地址的任何人,因此我想要执行以下操作:

  • 向用户发送一封包含验证 token 的电子邮件(最好是他们的电子邮件地址、一些盐和过期时间的混合体
  • 然后,用户可以将此 token 输入到我的应用中,并且“允许”他们继续操作

我想知道 IdentityServer4 是否可以/应该用于实现上述目的?

他们的tools表明您可以生成 token ,尽管我对这个主题很陌生,所以希望得到一些指导。

最佳答案

不,Identity Server 处理的 token 是 access_tokens,它与基于声明的身份验证有关。

用于电子邮件验证的 token 通常称为用户 token 或一次性密码 (OTP)。您可以找到有关如何使用这些搜索词生成/使用这些内容的大量信息,但是如果您使用 aspnet 身份类(例如 UserManager),您会发现它有一些内置的读取功能可供使用。或者您可以使用 UserManager 注册您自己的 UserTokenProvider

一般来说,你会做这样的事情:

  • 使用您的 UserTokenProvider 获取特定用户的 token (otp)。 UserManager 将使用该用户的安全哈希和您自己的“原因”(例如“EmailVerification”)来生成简短的 OTP。
  • 然后,您可以将该 OTP 封装到一个对象中,其中包括电子邮件地址、可能的用户 ID 以及您喜欢的任何内容。对其进行安全 Base64 编码(Identity Server 中有一个辅助函数实际上具有此功能,确保它末尾没有多余的 _ ,这会扰乱 HTML 链接),将其放入发送给用户的电子邮件中<
  • 用户点击您的链接,将其带到您的“验证密码” Controller ,并使用您的混合 token 作为负载。您对其进行解码,找出它是针对哪个用户的,让 UserManager 验证 OTP 部分是否仍然有效。
  • 工作完成。

如果您希望他们在登录时直接将 OTP 输入到您的应用中,那么您可以跳过通过电子邮件发送链接的整个混搭部分,直接通过电子邮件发送简短的 OTP。

关于asp.net-core - 是否可以/应该使用 IdentityServer4 创建用于用户电子邮件验证的 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44406876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com