首页 文章

Laravel身份验证重定向失败

提问于
浏览
1

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

从laravel docs添加了auth路由

mkdir auth
chmod -R 777 auth

创建登录/注册视图

创建/归属路线

定制的AuthController:

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

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

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

将auth路由移动到中间件组 .

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

更改主路由以检查用户是否已登录:

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

去auth / logout然后回到home route,没有被重定向到登录页面但是被重定向到site of root现在每当我去auth / login时它也会将我重定向到根路径,所以我去了隐身模式然后去了auth / login页面,它成功呈现并登录(在存储/框架/会话中创建了一个会话文件),然后还将我重定向到根路径 .

从之前的回答我然后将其添加到我的auth控制器:

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

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

上一个问题:Laravel authentication redirect error

1 回答

  • 2

    如果您使用的是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'
    ]);
    

相关问题