【问题标题】:Laravel 5.8 Email verification with password resetLaravel 5.8 带密码重置的电子邮件验证
【发布时间】:2020-02-15 06:03:01
【问题描述】:

在 Laravel 5.8 中,你有这个开箱即用的不错的电子邮件验证功能。

但是,假设用户注册了一个帐户,他们会收到一封电子邮件验证电子邮件,他们选择忽略该电子邮件,然后再忽略 决定密码重置(注意密码重置路由没有电子邮件验证的中间件),它会触发密码重置通知。当他们点击密码重置链接时,用户可以重置他们的密码,并且应用程序会尝试让他们登录,然后将他们重定向回来以验证他们的电子邮件,因为用户帐户 dashborad 路由具有验证电子邮件中间件。

这种身份验证流程是反直觉的,因为当用户请求重置密码时,这也应该验证他们的电子邮件帐户?

我想知道你们将如何处理这个过程?

  1. 如果没有验证,您是否会在每次重置密码时简单地更新 email_verified_at 列?
  2. 您是否通过强制用户在密码重置后再次验证其电子邮件来强制用户执行双重步骤?
  3. 您是否通过将经过验证的中间件应用于密码重置路由来完全防止密码重置?同样,这需要两个步骤才能让用户完全访问他们的帐户。

还有其他选择吗?

【问题讨论】:

  • 我会坚持2,因为这是正常的过程。如果用户在一段时间后返回站点并忘记了密码,则不能强制用户验证密码。奇怪的是,在 Laravel 中你必须通过身份验证才能验证电子邮件,否则它会显示登录屏幕:)
  • @nakov。为什么选择选项 2?密码重置和电子邮件验证都会尝试发送指向已注册电子邮件的链接。只有当您是该电子邮件的所有者时,您才能重置密码。
  • 这只是我相信的 Laravel 方式,否则当您重置密码时,email_verified_at 时间戳会被触及。正如我上面所说,即使是电子邮件验证也不是通常的验证。但是我从来没有见过一个页面,当您重置密码时,它会自动验证您。两者都是单独的动作。我只是给出了我的意见,它不一定是正确的:)

标签: laravel laravel-5.8 email-verification password-recovery


【解决方案1】:

密码重置与验证电子邮件相同(正如您自己所说的那样),所以我肯定会选择选项 1。

我很惊讶这还没有内置到 Laravel 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-01
    • 1970-01-01
    • 2021-02-07
    • 1970-01-01
    • 1970-01-01
    • 2019-06-24
    • 2020-06-26
    • 1970-01-01
    相关资源
    最近更新 更多