使用 Laravel 检查内部数据库中的 CAS 用户
Checking CAS user in internal database with Laravel
我正在编写一个 Laravel(5.7 with dev-master framework)应用程序供学校内部使用,我正在使用他们的 CAS 服务器进行身份验证,但我想检查用户是否已经在我自己的数据库中注册了。
我已经使用 https://github.com/subfission/cas 实现了 CAS 登录。
我不知道我是否应该将 CAS 与 "native" Laravel 身份验证集成(我什至不知道该怎么做)或编写一个中间件或类似的东西(也不知道该怎么做 :P).
ps: 英语不是我的母语,所以如果有任何书写错误请放轻松
好吧,刚刚检查了他们的 wiki,该死的!很简单;安装包后,您需要在 $routeMiddlewares
属性:
末尾的 app/Http/Kernel.php
添加两个全新的中间件
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 服务器登录页面并在身份验证成功时重定向回来)。
祝你好运。
我正在编写一个 Laravel(5.7 with dev-master framework)应用程序供学校内部使用,我正在使用他们的 CAS 服务器进行身份验证,但我想检查用户是否已经在我自己的数据库中注册了。
我已经使用 https://github.com/subfission/cas 实现了 CAS 登录。
我不知道我是否应该将 CAS 与 "native" Laravel 身份验证集成(我什至不知道该怎么做)或编写一个中间件或类似的东西(也不知道该怎么做 :P).
ps: 英语不是我的母语,所以如果有任何书写错误请放轻松
好吧,刚刚检查了他们的 wiki,该死的!很简单;安装包后,您需要在 $routeMiddlewares
属性:
app/Http/Kernel.php
添加两个全新的中间件
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 服务器登录页面并在身份验证成功时重定向回来)。
祝你好运。