如何在遵循重置密码路径时强制注销

Wom*_*tPM 4 laravel-5

我有一个有效的密码重置过程,有以下路线:

Route::group(['middleware' => [], 'namespace' => 'Auth'], function () {
    Route::get('/password/reset/{token?}', ['as' => 'site.password.showResetForm', 'uses' => 'PasswordController@showResetForm']);
    Route::post('/password/email', ['as' => 'site.password.sendResetLinkEmail', 'uses' => 'PasswordController@postEmail']);
    Route::post('/password/reset', ['as' => 'site.password.reset', 'uses' => 'PasswordController@reset']);
});
Run Code Online (Sandbox Code Playgroud)

如果有人当前已经登录到计算机上,就会出现我的问题。在这种情况下,当用户单击电子邮件中的链接时,PasswordController@showResetForm 永远不会执行,并且他们的主页会在新选项卡中打开。有没有办法强制当前用户注销以便密码重置可以继续?

Nir*_*hah 5

呼叫Auth::logout();您的一名控制器。

如果showResetForm由于用户登录而从未显示,您将需要创建一个临时页面,在其中调用上述函数,然后重定向到密码重置页面:

public function do_password_reset()
{
    Auth::logout();
    return redirect()->route('PasswordController@showResetForm');
}
Run Code Online (Sandbox Code Playgroud)

(记得添加该功能的相关路由。)