【问题标题】:Auth redirect isn't working. Prefix doesn't show身份验证重定向不起作用。前缀不显示
【发布时间】:2015-03-17 21:24:30
【问题描述】:

一切正常,但当我尝试打开一些需要身份验证的链接时,我得到了错误的路径。

Route::group(array('prefix' => 'admin'), function(){
    Route::get('login', array('as' => 'admin.login', 'uses' => 'AdminAuthController@getLogin'));
    Route::post('login', array('as' => 'admin.login.post', 'uses' => 'AdminAuthController@postLogin'));
    Route::get('logout', array('as' => 'admin.logout', 'uses' => 'AdminAuthController@getLogout'));
});

Route::group(array('prefix' => 'admin', 'before' => 'auth'), function(){
    Route::get('dashboard', array('as' => 'admin.dashboard', 'uses' => 'AdminWorksController@dashboard'));
    Route::get('/', array('as' => 'admin.dashboard', 'uses' => 'AdminWorksController@dashboard'));
    Route::resource('works', 'AdminWorksController', array('except' => array('show')));
});

所以当我执行HTML::linkRoute('admin.login') 时,输出链接很好,但是当我尝试使用过滤器'before'=>'auth' 在组中打开一条路由而不登录时,它会重定向到/login 而不是/admin/login

除此之外,一切都很好。使用命令php artisan routes 看起来也不错。

我做错了什么?我该如何解决这个错误的身份验证重定向?

【问题讨论】:

    标签: php authentication laravel routing prefix


    【解决方案1】:

    app/filters.php 中的auth 过滤器更改为:

    Route::filter('auth', function()
    {
        if (Auth::guest())
        {
            if (Request::ajax())
            {
                return Response::make('Unauthorized', 401);
            }
            return Redirect::guest(route('admin.login'));
        }
    });
    

    【讨论】:

    • 完全忘记了这一点。谢谢。它现在正在工作。
    猜你喜欢
    • 2016-11-04
    • 1970-01-01
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-04
    相关资源
    最近更新 更多