使用Laravel检查内部数据库中的CAS用户

时间:2019-02-01 01:08:24

标签: php database laravel authentication cas

我正在编写Laravel(带有dev-master框架的5.7)应用程序供学校内部使用,并且正在使用其CAS服务器进行身份验证,但是我想检查用户是否已在我自己的数据库中注册。

我已经用https://github.com/subfission/cas实现了CAS登录。

我不知道我是否应该将CAS与“本地” Laravel auth集成(而且我什至也不知道该怎么做)或编写中间件或类似的东西(不知道如何做)要么:P)。

ps:英语不是我的母语,所以请轻松编写任何书写错误

1 个答案:

答案 0 :(得分:1)

好吧,只需检查他们的wiki即可!这很简单。安装软件包后,您需要在app/Http/Kernel.php属性的末尾向您的$routeMiddlewares添加两个全新的中间件:

protected $routeMiddleware = [
         //snap
        'cas.auth'  => \Subfission\Cas\Middleware\CASAuth::class,
        'cas.guest' => \Subfission\Cas\Middleware\RedirectCASAuthenticated::class,
    ];

好,现在运行php artisan vendor:publish --provider=Subfission\Cas\CasServiceProvider,因此cas.php的配置文件将被添加到config文件夹中。打开它,然后输入您学校的CAS配置。

非常好,现在您需要做的就是在需要CAS验证时使用cas.auth中间件:

//web.php
Route::get('user/profile','UserController@profile')->middleware('cas.auth');

此中间件仅检查当前用户是否已登录CAS服务器(继续到控制器)或用户未登录CAS服务器(重定向到CAS服务器登录页面并在身份验证成功后重定向回)。

祝你好运。