【问题标题】:Laravel 4 - Route::any exceptLaravel 4 - Route::any 除外
【发布时间】:2014-05-29 13:46:03
【问题描述】:

我对 Laravel 很陌生,我正在尝试创建一个系统来检查用户是否“登录”。

出于某些原因,我正在使用 SSPI 身份验证。所以基本上,当用户到达网站时,会弹出一个登录弹出窗口,要求输入登录名和密码,并且 SSPI 模块针对 AD 进行身份验证。

我想要做的是,在任何路线上,它都会检查会话变量。如果此变量不存在,则重定向到配置了 SSPI 的路由。

我尝试了以下方法:

Route::any('{all}', function()
{
if (!Session::get('PHP_USER_AUTH')) {
        redirect::route('auth');
} else {
        return 'Logged in as ' . Session::get('PHP_USER_AUTH');
}
})->where('all', '.*');

Route::get('/auth', function() {
    // Do something
});

这是 SSPI 配置:

<files auth>
    AuthName "Laravel Auth"
    AuthType SSPI
    SSPIAuth On
    SSPIAuthoritative On
    require valid-user
</files>

明显的问题是,当我到达任何路线时,它会检查会话变量,找不到它并重定向到身份验证路线。但是,在 auth 路由上,它也会检查变量,找不到它并重定向等。

有没有办法制作all routes excepts 之类的东西。还是我想错了问题?

感谢您的帮助。

【问题讨论】:

    标签: php laravel laravel-4 laravel-routing sspi


    【解决方案1】:

    一种快速的解决方法是将Route::get('/auth' ...); 块移到Route::all(...); 块上方。

    这将告诉 Laravel 覆盖所有路由。

    【讨论】:

    • 哇,干得好。谢谢。
    猜你喜欢
    • 2020-01-11
    • 1970-01-01
    • 2013-06-09
    • 2014-06-23
    • 2013-06-02
    • 1970-01-01
    • 2013-10-06
    • 1970-01-01
    • 2020-03-16
    相关资源
    最近更新 更多