Sal*_*301 0 password-protection laravel
我在 Laravel 中有一条秘密路线,应该位于密码确认保护后面(就像当您要删除存储库或添加协作者时的 GitHub sudo 模式)
\n\nRoute::get(\'/secret\', \'DiariesController@index\')->middleware([\'auth\', \'verified\']);\nRun Code Online (Sandbox Code Playgroud)\n\n但已经通过身份验证的用户可以轻松访问路由
\n\n我想要的是额外的一层保护,防止对用户设备的物理访问
\n\n这是我到目前为止所尝试过的
\n\nDiariesController
public function index()\n{\n if (session()->has(\'sudo\')) {\n return view(\'secret.diaries\');\n }\n auth()->logout();\n return redirect(\'/login\');\n}\nRun Code Online (Sandbox Code Playgroud)\n\n并且在LoginController
/**\n * The user has been authenticated.\n *\n * @param \\Illuminate\\Http\\Request $request\n * @param mixed $user\n * @return mixed\n */\nprotected function authenticated(Request $request, $user)\n{\n session([\'sudo\' => true]);\n}\nRun Code Online (Sandbox Code Playgroud)\n\n但这基本上没有任何作用,我必须以sudo某种方式手动使 \xc2\xa0session 密钥过期
有没有更简单的方法来实现这一目标?
\n该Laravel v6.2.0版本附带一个new password confirmation feature. 此功能允许您将 password.confirm 附加middleware到您希望用户重新确认其密码的路由。考虑到您的代码,您的路线将如下所示。
Route::get('/secret', 'DiariesController@index')->middleware(['auth', 'verified','password.confirm']);
Run Code Online (Sandbox Code Playgroud)
如果您尝试访问该路由,系统将提示您确认密码,类似于您在 GitHub 等其他应用程序上看到的情况。欲了解更多信息,您可以访问此
谢谢