【问题标题】:How to chage redirect route after email verification in Laravel7?如何在 Laravel 7 中验证电子邮件后更改重定向路由?
【发布时间】:2020-12-31 03:04:46
【问题描述】:

我有以下由 laravel 电子邮件验证路由创建的电子邮件验证 URL。

http://localhost/myproject/public/email/verify

验证电子邮件后,我再次调用此 url。它重定向到如下 url 的主路由。

http://localhost/myproject/public/home

但我想改为重定向到特定路线。任何建议或指导在某处覆盖此内容将不胜感激,谢谢。

【问题讨论】:

    标签: laravel


    【解决方案1】:

    我们可以在邮件经过最终用户验证后修改重定向URL,方法是在VerificationController中设置redirectTo属性,如官方documentation中所述:

    验证电子邮件地址后,用户将自动被重定向到 /home。您可以通过在 VerificationController 上定义 redirectTo 方法或属性来自定义验证后重定向位置。

    protected $redirectTo = '/home';
    

    【讨论】:

    • 亲爱的 Stefano A., 这适用于单一固定路线。在我的情况下,我有多个由用户分隔的目标路线。所以需要重写方法。
    • redirectTo 也可以是一个方法,可以覆盖它来处理你的具体场景
    【解决方案2】:

    我有通过覆盖show 方法和user()->hasVerifiedEmail(); 的解决方案

    public function show(Request $request)
        {
            if ($request->user()->hasVerifiedEmail() == 1){
            ....
    

    如果验证则重定向到目标路由,否则重定向到view('auth.verify');

    【讨论】:

      猜你喜欢
      • 2022-08-14
      • 1970-01-01
      • 2019-03-05
      • 2020-11-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多