mnshankar / laravel-shib-auth
将 Shibboleth 令牌转换为等效的 Laravel 用户表列,以便可以使用 Laravel 身份验证语义
v1.0
2017-05-27 09:58 UTC
Requires
- php: >=5.4.0
- illuminate/support: >=5.0
This package is not auto-updated.
Last update: 2024-09-23 16:26:47 UTC
README
Shibboleth 身份验证通常会在成功认证后由身份提供者设置一系列服务器变量。这是一个 Laravel 5.0+/PHP 5.4+ 包,帮助将这些服务器令牌转换为 Laravel 用户表字段,以便遵循常规 Laravel 身份验证语义。
注意,Shib 身份验证必须已经发生 - 通常使用 .htaccess 文件中的指令。
包含的中介件会检查用户表
- 如果没有找到匹配的用户,则创建一个新的用户行
- 如果在用户表中找到用户,则检索相应的用户记录
- 然后使用 Auth::login($user) 将用户登录到应用程序
安装
通过 composer 需求此包
$ composer require mnshankar/laravel-shib-auth
接下来,设置服务提供者。这允许您修改配置文件(默认令牌针对 UF 实现的 Shibboleth)
在您的 config/app 提供者数组中添加
'mnshankar\Shib\ShibAuthServiceProvider',
您必须确保
- 映射的字段存在于您的用户表中。
- Shibboleth 为指定的所有令牌设置有效值(否则会抛出异常)
- 用户表中的 "password" 字段必须是可空的,因为我们不会使用它。
用法
编辑您的 http kernel.php 文件,以便包含包中的 shib 中介件,如下所示
'shib'=>'mnshankar\Shib\Middleware\ShibAuth',
现在,您可以从控制器或路由使用中介件。
-
在您的控制器中
function __construct() { $this->middleware('shib'); }
-
在您的路由中
使用 Laravel 5.0
Route::get('my/page', ['middleware' => 'shib', function() { // }]);
使用 Laravel 5.1+
您可以使用 Laravel 5.0 风格继续使用...或者使用链式调用
Route::get('/', function () { // })->middleware(['shib']);
您还可以使用路由分组。请参阅 Laravel 中间件文档了解有关中间件的更多信息 https://laravel.net.cn/docs/5.2/middleware
配置选项
您可以通过发布它们来自定义配置选项
php artisan vendor:publish --provider="mnshankar\Shib\ShibAuthServiceProvider"