【问题标题】:Include authorization header in email在电子邮件中包含授权标头
【发布时间】:2021-02-10 09:36:54
【问题描述】:

我在 azure 上有一个 rest API,通过 B2C 身份验证进行保护。问题是某些需要确认或拒绝约会的电子邮件的收件人不是注册用户。我想给他们一个他们可以点击的链接,这将在数据库中设置一个特定的会议以获得他们的响应 - 但他们没有使用 API 的身份验证。

我最初的想法是创建一些 api put 端点,它们只会修改响应值 - 但同样,它们无法访问 API。

是否可以为任何用户手动生成验证码?或者创建一个具有身份验证的开发用户,并从中窃取代码以某种方式包含在电子邮件标题中?

这里有哪些最佳做法

【问题讨论】:

  • question 能解决您的问题吗?
  • 嗨@aescript 如果您仍在寻求这方面的帮助,请告诉我们

标签: c# rest email authentication azure-ad-b2c


【解决方案1】:

您可以为他们提供将在 24 小时内到期的密码或一次性密码,或者在电子邮件的链接中包含一次加密令牌(最佳选择)

【讨论】:

  • 我如何在 Azure b2c 中做到这一点
  • 您通过 SMTP 向非注册用户发送电子邮件。在该电子邮件正文中,您提供带有加密令牌的链接。当他们点击链接时,他们会来到您的站点,您的应用程序会解密并验证令牌,并提供确认或拒绝约会或选择约会替代日期的选项
  • 同样,不幸的是,这并没有帮助。您告诉我将它们发送到带有我可以解密的令牌的链接 - 这就是我描述的问题的工作流程。我问当我必须提供 URL 的唯一地方需要授权时,我将如何实现这一点。
  • 您可以通过多种方式创建令牌。令牌可以是 GUID,可以保存在数据库中,有效期为一天或几小时,或一次使用,但有时间限制。您可以通过 SMTP 从 API 向客户发送电子邮件。此电子邮件正文可以链接到您的站点,并且该链接还将具有加密密钥,您将使用该密钥对客户进行身份验证。现在如何从 Azure 发送电子邮件,请参阅这篇文章 - blog.mailtrap.io/azure-send-email
  • 但又一次......这就是问题所在。我无法将其放入数据库,因为他们无法访问数据库。它需要身份验证。你一直在掩盖我不知道该怎么做的事情“jsut发送一个加密密钥”哈哈。我不知道如何获取可以放入 URL 的密钥,该 URL 将允许使用 azure 对我的 API 进行身份验证
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-23
  • 2018-08-20
  • 1970-01-01
  • 2011-06-22
  • 1970-01-01
  • 1970-01-01
  • 2012-12-24
相关资源
最近更新 更多