【问题标题】:How to generate an activation link in an email via a stored procedure如何通过存储过程在电子邮件中生成激活链接
【发布时间】:2019-08-15 03:41:34
【问题描述】:

我想要一种验证电子邮件的方法,以免阻塞我们的队列。目标是当用户完成帐户设置后,需要验证电子邮件。我的想法是创建一个存储过程,该过程将向用户发送一封电子邮件,其中包含链接或其他内容,以验证电子邮件是否已发送并打开。

我感到困惑的是如何生成此链接。

在我的一个存储用户的表中,我添加了一个名为“isActive”的列,其类型为 BIT 并设置为 0。目标是电子邮件具有一个链接,一旦单击该链接,就会将“isActive”列从0 到 1,这将验证电子邮件是否已正确到达。

我希望当用户输入完他的信息后,存储过程会发送一封电子邮件,通过单击激活链接来验证电子邮件是否正确。

【问题讨论】:

  • 是关于如何为该列行生成唯一标识符来标识此验证请求的问题具体与一个帐户有关,还是您需要知道如何从头开始进行电子邮件验证的整个过程完成?奇怪的是,您不会让服务器本身发送电子邮件或生成链接,但您可能会让服务器生成将进入所述链接/电子邮件的密钥或详细信息。编辑:我的意思是您可以让服务器生成整个链接,但放置该逻辑似乎是一个奇怪的地方。
  • 宾果游戏,我猜我的解释太含糊了。生成唯一标识符让我摸不着头脑。 @CodyMcPheron
  • 旁白:您应该将到期日期/时间与唯一链接相关联,以便它仅在合理的期限内有效,例如30分钟。保留DateTime 字段ActivatedOn 而不是bit 也可能会有所帮助。如果是null,则该帐户尚未激活。

标签: sql-server tsql


【解决方案1】:

根据上面的评论说明,我认为您希望将一列设置为 GUID(或添加新列)。这些链接将提供有关如何以及为什么这样做的一些详细信息,但简短的版本是您可以保证连接键是不可猜测的并且始终是唯一的。通过 UNIQUEIDENTIFIER DEFAULT NEWID() 将一列设置为具有默认 GUID 值,它将为每个新行创建一个新 ID,您可以在代码的其他部分使用该 ID。

http://www.sqlservertutorial.net/sql-server-basics/sql-server-guid/

https://www.sqlshack.com/understanding-the-guid-data-type-in-sql-server/

【讨论】:

    猜你喜欢
    • 2014-08-17
    • 2014-02-01
    • 2023-03-03
    • 1970-01-01
    • 2023-04-04
    • 2012-02-28
    • 2015-04-26
    • 2019-03-09
    • 2014-09-04
    相关资源
    最近更新 更多