php - 使用 Laravel 检查内部数据库中的 CAS 用户
问题描述
我正在编写一个 Laravel(带有 dev-master 框架的 5.7)应用程序供我学校内部使用,并且我正在使用他们的 CAS 服务器进行身份验证,但我想检查用户是否已经在我自己的数据库中注册。
我已经使用https://github.com/subfission/cas实现了 CAS 登录。
我不知道我是否应该将 CAS 与“本机”Laravel auth 集成(我什至不知道该怎么做)或编写中间件或类似的东西(也不知道该怎么做:P )。
ps:英语不是我的母语,所以请轻松解决任何写作错误
解决方案
好吧,刚刚检查了他们的维基,该死的!安静简单;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.auth
在需要 CAS 认证时使用中间件:
//web.php
Route::get('user/profile','UserController@profile')->middleware('cas.auth');
此中间件仅检查当前用户是否已登录 CAS 服务器(继续到控制器)或用户未登录 CAS 服务器(重定向到 CAS 服务器登录页面并在身份验证成功时重定向回)。
祝你好运。
推荐阅读
- airflow - BigQueryHook 的 Google Cloud Composer 身份验证
- django - 带有 Django 后端和谷歌身份验证的 Flutter 应用程序
- docker - docker中的haproxy零停机时间
- jbossfuse - 骆驼弹簧 xml 未加载到 fuse 7.x 中
- ruby-on-rails - rspec rails 6 控制器
- authentication - 在 IdentityServer4 中生成永不过期的令牌
- c# - 是否可以使用 Ajax.BeginForm 在其他域上调用 api?
- mysql - 在列中生成值的组合
- javascript - 如何使用鼠标事件等触摸事件在移动设备中选择元素
- corda - 帐户库:AccountInfoCommand 没有更新命令