Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我点击laravel发送到我的gmail的电子邮件验证链接时,它会将我重定向到页面,页面上显示-403此操作未经授权_Laravel_Email Verification_Laravel 7 - Fatal编程技术网

当我点击laravel发送到我的gmail的电子邮件验证链接时,它会将我重定向到页面,页面上显示-403此操作未经授权

当我点击laravel发送到我的gmail的电子邮件验证链接时,它会将我重定向到页面,页面上显示-403此操作未经授权,laravel,email-verification,laravel-7,Laravel,Email Verification,Laravel 7,在我的laravel项目中,我成功地创建了身份验证。注册、登录和注销都可以正常工作。我做了电子邮件验证,它成功地将验证电子邮件发送给用户。但当我点击laravel发送给我的gmail的验证邮件时,它会将我重定向到一个页面,上面写着:403此操作未经授权 我使用的是Laravel7 web.php文件中的我的路线 Route::get('/', function () { return redirect(app()->getLocale()); }); Route::get('em

在我的laravel项目中,我成功地创建了身份验证。注册、登录和注销都可以正常工作。我做了电子邮件验证,它成功地将验证电子邮件发送给用户。但当我点击laravel发送给我的gmail的验证邮件时,它会将我重定向到一个页面,上面写着:403此操作未经授权

我使用的是Laravel7

web.php文件中的我的路线

Route::get('/', function () {
    return redirect(app()->getLocale());
});

Route::get('email/verify', 'Auth\VerificationController@show')->name('verification.notice');
Route::get('email/verify/{id}', 'Auth\VerificationController@verify')->name('verification.verify');
Route::post('email/resend', 'Auth\VerificationController@resend')->name('verification.resend');

Route::group([
    "prefix" => "{language}",
    'where' => ['locale' => '[a-zA-Z]{2}'],
    'middleware' => 'setlocale'
], function () {    
    Auth::routes();

    Route::get('/home', 'HomeController@index')->name('home');
});
我手动设置电子邮件验证路由,因为当我设置

Auth::routes(['verify' => true]);
我遇到了一个错误,所以我在路由组外部手动设置了电子邮件验证以修复该错误


在verify.blade.php中,重新发送验证电子邮件也可以正常工作,它成功地重新发送了验证电子邮件。

我已经解决了这个问题。问题是验证。验证路线是错误的

当你设定

Auth::routes(['verify' => true]);
实际的验证路径如下所示

email/verify/{id}/{hash}
verify.verify路由调用位于vendor\laravel\ui\auth backend\verifyesemails.php中的verify方法在该方法中有两个if语句引发AuthorizationException,导致403此操作为未授权页面。第一个if使用当前经过身份验证的用户id检查路由用户id,第二个if使用当前经过身份验证的用户哈希检查路由哈希

并使资源正确配置受信任的代理。 签入laravel文档单击


我希望这能对你有所帮助。

我在我的案例中,我点击了错误的“验证电子邮件url”,因为我在谷歌的所有验证电子邮件都是在同一个“主题”下累积的,所以我没有点击最后一封邮件,而是点击了第一封邮件