php - Laravel 4 - 路线::任何除了

标签 php laravel laravel-4 laravel-routing sspi

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

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

我想要做的是,在任何路线上,它都会检查 session 变量。如果此变量不存在,它将重定向到配置了 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>

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

有没有办法制作类似除所有路由之类的东西。或者我以错误的方式思考这个问题?

感谢您的帮助。

最佳答案

一个快速的解决方法是将 Route::get('/auth' ...); block 移至 Route::all(...); 阻止。

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

关于php - Laravel 4 - 路线::任何除了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23079756/

相关文章:

php - 为 Laravel 应用程序中的所有表单设置全局选项

laravel - Laravel 4 教程 - 身份验证

laravel-4 - 未找到 Moltin\Cart\CartServiceProvider 类

php - 需要显示来自数据库的时间戳

php - 如何要求正确填写表格才能访问数据?

php - 如何在Microsoft graph API中使用用户的访问 token 或基于租户ID的访问 token ?

php - 如何关闭 Laravel 的 PHPUnit 任务中的颜色?

laravel - 将 StdClass 数据移植到模型

php - 在 PHP 中启用 json_encode

php - MySql中按多列排序评论部分