首页 > 解决方案 > Laravel6 - 多登录平台上的电子邮件验证定制

问题描述

我是 laravel 的新手。我正在尝试在我的 laravel6 项目中实现电子邮件验证。

在我的项目中,有三种用户类型,分别名为“用户”、“供应商”和“管理员”。我为“控制器”中的每个用户类型准备了单独的目录,并且每个用户都有自己的身份验证文件(例如,目录“App/Http/Controllers/Vendor/Auth”有自己的 VerificationController.php 等)。到目前为止,我已经成功地在我的数据库中使用单独的表为每种类型实现了注册和登录/注销功能。

当我尝试实施电子邮件验证时,出现了一个问题。当我尝试访问需要电子邮件验证的页面时,无论用户类型如何,似乎都会调用“Auth\VerificationController@show”方法。

我浏览了 laravel 源代码,了解到在这个过程中,路由器调用了 Illuminate/Routing/Router->emailVerification() 方法。无论用户类型如何,emailVerification() 方法都会路由到“Auth\VerificationController@show”。我想做的是根据用户类型进行路由(例如,如果“供应商”尝试登录,我想调用“供应商\Auth\VerificationController@show”)。

我不知道该怎么做。任何人都可以给我任何建议吗?

照亮\路由\路由器类

    public function emailVerification()
    {
        $this->get('email/verify', 'Auth\VerificationController@show')->name('verification.notice');
        $this->get('email/verify/{id}/{hash}', 'Auth\VerificationController@verify')->name('verification.verify');
        $this->post('email/resend', 'Auth\VerificationController@resend')->name('verification.resend');
    }

先感谢您。

标签: laravellaravel-6

解决方案


推荐阅读