我正在编写Laravel(带有dev-master框架的5.7)应用程序供学校内部使用,并且正在使用其CAS服务器进行身份验证,但是我想检查用户是否已在我自己的数据库中注册。
我已经用https://github.com/subfission/cas实现了CAS登录。
我不知道我是否应该将CAS与“本地” Laravel auth集成(而且我什至也不知道该怎么做)或编写中间件或类似的东西(不知道如何做)要么:P)。
ps:英语不是我的母语,所以请轻松编写任何书写错误
答案 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服务器登录页面并在身份验证成功后重定向回)。
祝你好运。