首页 > 解决方案 > 使用 Laravel 检查内部数据库中的 CAS 用户

问题描述

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

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

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

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

标签: phpdatabaselaravelauthenticationcas

解决方案


好吧,刚刚检查了他们的维基,该死的!安静简单;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\CasServiceProvidercas.php配置文件将被添加到config文件夹中。打开它并输入您学校的 CAS 配置。

很好,现在你要做的就是cas.auth在需要 CAS 认证时使用中间件:

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

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

祝你好运。


推荐阅读