php – Laravel 5.2,auth :: check登录后返回true,重定向后返回false
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – Laravel 5.2,auth :: check登录后返回true,重定向后返回false,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1470字,纯文字阅读大概需要3分钟。
内容图文
![php – Laravel 5.2,auth :: check登录后返回true,重定向后返回false](/upload/InfoBanner/zyjiaocheng/703/81ced9ac25ba42fcb956cd7d61703609.jpg)
我正在尝试使用laravel 5.2内置的身份验证系统.登录似乎工作正常,如果我用Auth :: check()替换return语句,它返回true.但是当我重定向到’/’时,Auth :: check()突然在我的Auth中间件中返回false.
会话创建方法:
public function create(Request $request)
{
$email = $request->email;
$password = $request->password;
if(Auth::attempt(['email' => $email, 'password' => $password])) {
return redirect()->intended('/'); // returns true when replaced with Auth::check();
}
return redirect("login");
}
Auth中间件:
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guest()) {
if ($request->ajax() || $request->wantsJson()) {
return response('Unauthorized.', 401);
} else {
return var_dump(Auth::check()); // returns false
}
}
return $next($request);
}
路线文件:
Route::post('/create-session', 'SessionController@create');
Route::get('/logout', 'SessionController@logout');
Route::get('/login', function() {
return view('login');
});
Route::group(['middleware' => ['web', 'auth']], function(){
Route::get('/', 'HomeController@getIndex');
});
解决方法:
需要会话的所有路由(Auth使用的)必须应用“web”中间件.
也:
您的Auth :: check()正在代码块中完成,该代码块仅在Auth :: guest()为true时运行. Auth :: guest()是Auth :: check()的反转.
所以你在中间件中说:如果当前用户是访客(未经过身份验证),请检查他们是否是经过身份验证的用户,此时此用户始终为false.
更新:
根据您的意见:不要将身份验证中间件添加到“web”组.除非在进行此更改之前进行了身份验证,否则您将永远无法点击“网络”路线.如果你这样做,你甚至无法登录.
内容总结
以上是互联网集市为您收集整理的php – Laravel 5.2,auth :: check登录后返回true,重定向后返回false全部内容,希望文章能够帮你解决php – Laravel 5.2,auth :: check登录后返回true,重定向后返回false所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。