Laravel-sso 给你的系统增加单点登录
SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
当公司系统开始多了的时候,SSO 就显得尤为重要了,例如管理后台需要无障碍跳转到短信系统、订单系统等。
GitHub: https://github.com/cblink/laravel-sso
当前这版本做的还算比较简单,只是登录到某个 sso 应用,没有精确到用户,如果认为有需要登录到个人的同学可以说声,加上去也是比较快的。
安装
composer require cblink/laravel-sso:dev-master -vvv
配置
发布 config/sso.php
以及 migration 迁移文件
php artisan vendor:publish --provider="Cblink\Sso\SsoServiceProvider"
跑迁移:
php artisan migrate
这个迁移用于生成登录 SSO 的授权验证表
创建 SSO 路由
php artisan sso:route
可以自行通过命令创建 SSO 应用
php artisan sso:create
在 config/auth.php
添加 SSO 的配置:
'guards' => [
'sso' => [
'driver' => 'session',
'provider' => 'sso',
],
],
'providers' => [
'sso' => [
'driver' => 'sso',
'table' => 'sso',
],
],
用法
以下只是示例,可自行凭想象力修改
// 需要 SSO 登录的客户端添加
Route::get('sso', function () {
$client = new \GuzzleHttp\Client();
$response = $client->get('http://yourdomain/sso/getTicket?'.http_build_query([
'app_id' => 'your_app_id',
'secret' => 'your_secret',
]));
$result = json_decode((string)$response->getBody(), true);
if ($ticket = $result['ticket'] ?? null) {
return redirect('http://yourdomain/sso/login?ticket='.$ticket);
}
});
GitHub: https://github.com/cblink/laravel-sso
欢迎来 star
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: