【问题标题】:Automatically Detect When a User Verifies Email自动检测用户何时验证电子邮件
【发布时间】:2020-09-21 07:25:10
【问题描述】:

我有一个使用 Laravel 框架构建的网站。当用户创建一个新帐户时,他们会立即被带到他们的仪表板,并显示一条消息,告诉他们检查他们的电子邮件以获取验证链接。在验证电子邮件之前,仪表板上的所有按钮都将被禁用。

我希望仪表板页面能够自动检测用户何时验证其电子邮件,然后立即启用按钮,而无需用户在验证后手动刷新页面。我该怎么做?

【问题讨论】:

  • 对于浏览器的后端推送更新,您可能正在寻找的技术称为“网络套接字”。
  • 监听Illuminate\Auth\Events\Verified事件,通过websockets广播到前端
  • 我正要写出与@Salim 在这里提供的完全相同的答案。这是要走的路。
  • 我以前从未听说过/使用过 websockets.... 我已经为Illuminate\Auth\Events\Verified 设置了一个事件侦听器来发送欢迎电子邮件,因此该步骤已完成。实现 websocket 以实现我想要的功能的代码是什么样的?
  • 这是一个非常复杂的概念,但documentation 让它变得轻而易举。您应该在question 中添加一些代码。另外,请阅读这篇很棒的文章,它将帮助您制作 perfect question

标签: php mysql database laravel email-validation


【解决方案1】:

一种方法是拥有一个 API 端点,您可以在其中添加用户信息(id、电子邮件、bla bla),它会返回 true 或 false。每隔一段时间向该端点发出请求(可能使用某种形式的退避,例如https://en.wikipedia.org/wiki/Exponential_backoff,如果它在一秒钟后尝试失败,那么如果它在十秒后尝试失败,......)以避免后端过载。

保持 UI 处于禁用状态,直到您从后端获得积极响应。

话虽如此,您可能需要根据业务需求对用户可以执行的每个操作添加此检查,因为您永远无法(完全)信任客户

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-26
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多