【问题标题】:Laravel authentication redirect failsLaravel 身份验证重定向失败
【发布时间】:2016-04-03 13:42:03
【问题描述】:

遵循本指南:https://www.youtube.com/watch?v=bqkt6eSsRZs&list=PL_UnIDIwT95NUvLU14l_QFFV2ZxO1phpQ&index=10

添加了来自 laravel 文档的 auth 路由

mkdir auth
chmod -R 777 auth

创建登录/注册视图

创建 /home 路线

自定义 AuthController:

protected $redirectTo = 'home';
protected $redirectPath = 'home';
protected $loginPath = '/auth/login';

尝试访问身份验证/登录时出现此错误:

Request.php 第 775 行中的 ErrorException:.. 未设置会话存储
请求。

将身份验证路由移至中间件组。

成功注册,在db和sessions文件中创建用户

更改回家路线以检查用户是否已登录:

if(Auth::guest()) {
    return Redirect::to('auth/login');
} else {
    echo "welcome home";
}

去 auth/logout 然后回到主路由,没有重定向到登录页面,而是重定向到站点的根目录 现在,每当我进入 auth/login 时,它也会将我重定向到根路径,所以我进入隐身模式并进入 auth/login 页面,它成功呈现并让我登录(在 storage/framework/sessions 中创建了一个会话文件) 但随后也将我重定向到根路径。

根据之前的回答,我将其添加到我的身份验证控制器中:

public function authenticated( $request,  $user ) {
    return redirect()->intended($this->redirectPath().'?success');
}

在正常模式(Chrome)下返回主路由时问题仍然存在,但在隐身模式下重定向到身份验证/登录页面,并创建会话文件但在成功登录后仍重定向到根路径。然后我在 auth 控制器中注释掉了 authenticated() 方法,但问题仍然存在......

上一个问题:Laravel authentication redirect error

【问题讨论】:

  • 首先,请正确格式化您的问题
  • 您是否将身份验证中间件附加到您的路由?
  • 不,我没有附加身份验证中间件,我只是按照那个教程来获得基本身份验证工作

标签: php laravel session authentication redirect


【解决方案1】:

如果你使用的是 Laravel 5.2 版本,那么你需要使用 web 中间件,在我的例子中我有这个

Route::group(['middleware' => 'web'], function () {
   Route::auth();
   Route::get('/home', 'HomeController@index');
});

对于 Laravel 5 和 5.1 版本,您需要以下路线:

Route::controllers([
'auth' => 'Auth\AuthController'
]);

【讨论】:

  • 谢谢。这是有道理的,我正在运行 Laravel 5.2,所以我将它添加到我的路由文件中,它在 Firefox 中有效,但在 Chrome 中总是重定向到根路径(即使在进入 auth/logout 之后),所以我将在火狐。再次感谢大家的帮助!
  • 我很抱歉...我以为我使用的是 5.1,但结果我使用的是 5.2...再次抱歉!
猜你喜欢
  • 2016-06-28
  • 1970-01-01
  • 2018-07-02
  • 2014-08-16
  • 1970-01-01
  • 1970-01-01
  • 2014-01-09
相关资源
最近更新 更多