【问题标题】:Laravel 5.1 redirect after authLaravel 5.1 身份验证后重定向
【发布时间】:2016-05-13 20:47:13
【问题描述】:

我正在使用 laravel 5.1 并且有类似的路线:

Route::get('/{id}/write-review', ['middleware' => 'auth', 'uses' => 'ItemController@writeReview']);

我遇到的问题是,当有人访问此页面(未登录时)时,他们会被重定向到登录,这很好,但随后会重定向到 AuthController.php中设置的$redirectPath >。我希望他们被重定向回评论页面。

提前致谢。

【问题讨论】:

    标签: php laravel redirect routing


    【解决方案1】:

    预期的重定向功能会将用户重定向到他们在被身份验证过滤器捕获之前尝试访问的 URL。如果预期的目的地不可用,则可以为此方法提供后备 URI。 https://laravel.com/docs/5.1/authentication#authenticating-users

     return redirect()->intended('dashboard');
    

    我想我发现问题路由 {id}/write-review 必须在 web 中间件下

      Route::group(['middleware' => ['web']], function () {
        Route::get('login', 'Auth\AuthController@getLogin');
        Route::post('login', 'Auth\AuthController@postLogin');
        Route::get('logout', 'Auth\AuthController@getLogout');
    
        Route::group(['middleware' => ['auth']], function () {
            Route::get('/{id}/write-review', ['uses' => 'ItemController@writeReview']);
        });
    });
    

    【讨论】:

    • 感谢您的帮助,但我对 Laravel 很陌生,不知道这意味着什么。我使用的是内置登录,所以我的 AuthController.php 文件中没有登录功能。我应该把你建议的那行放在哪里?
    • 你能从 AuthController 发布登录功能吗?
    • AuthController 没有登录功能。 Laravel 为你处理这个问题。在 AuthController 中有: protected $loginPath = '/login'; protected $redirectPath = '/admin/account'; __construct 和验证器。
    • 当我将路由包装在 'Route::group(['middleware' => ['web']], function () {' 我得到 'Class web 不存在'。这是对于 laravel 5.1?
    • 我的错误是 laravel 5.2 laravel 5.1 没有 web 中间件。我已经在 laravel 5.1 登录中测试了构建,它使用了 redirect()->intended($this->redirectPath());成功登录后。您的会话驱动程序是否正常工作?
    猜你喜欢
    • 2017-12-24
    • 1970-01-01
    • 2015-11-11
    • 2016-03-10
    • 2019-03-18
    • 2016-06-11
    • 1970-01-01
    • 2016-04-03
    • 2019-09-10
    相关资源
    最近更新 更多