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



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

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

我不知道我是否应该将 CAS 与"本机"Laravel 身份验证集成(我什至不知道该怎么做)或编写中间件或类似的东西(也不知道该怎么做:P)。

PS:英语不是我的母语,所以请轻松处理任何写作错误

好吧,刚刚检查了他们的维基,该死的!它安静简单;安装软件包后,您需要在属性末尾向app/Http/Kernel.php添加两个全新的中间件$routeMiddlewares

protected $routeMiddleware = [
         //snap
        'cas.auth'  => SubfissionCasMiddlewareCASAuth::class,
        'cas.guest' => SubfissionCasMiddlewareRedirectCASAuthenticated::class,
    ];

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

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

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

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

祝你好运。

最新更新