abdelhamiderrahmouni/laravel-sso
最新稳定版本:v0.1.1
Composer 安装命令:
composer require abdelhamiderrahmouni/laravel-sso
包简介
Simple Laravel SSO integration (A fork of nddcoder/laravel-sso based on and zefy/laravel-sso)
README 文档
README
This package based on Simple PHP SSO integration for Laravel package.
Requirements
- Laravel 5.5+ (5.5, 6.x, 7.x, 8.x, 9.x, 10.x, 11.x)
- PHP 7.1+|8.0+
Documentation
Please read Simple PHP SSO integration for Laravel docs.
Installation
Server
Install this package using composer.
$ composer require abdelhamiderrahmouni/laravel-sso
Copy config file to Laravel project config/ folder.
$ php artisan vendor:publish --provider="AbdelhamidErrahmouni\LaravelSSO\SSOServiceProvider"
Create table where all brokers will be saved.
$ php artisan migrate --path=vendor/abdelhamiderrahmouni/laravel-sso/database/migrations
Edit your app/Http/Kernel.php by create new middleware like this:
'api' => [ 'throttle:60,1', 'bindings', ], 'sso' => [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, 'bindings', ], //...
Now you should create brokers. You can create new broker using following Artisan CLI command:
$ php artisan sso:broker:create {name}
Broker
Install this package using composer.
$ composer require abdelhamiderrahmouni/laravel-sso
Copy config file to Laravel project config/ folder.
$ php artisan vendor:publish --provider="AbdelhamidErrahmouni\LaravelSSO\SSOServiceProvider"
Change type value in config/laravel-sso.php file from server
to broker.
Set 3 new options in your .env file:
SSO_SERVER_URL= SSO_BROKER_NAME= SSO_BROKER_SECRET=
SSO_SERVER_URL is your server's http url without trailing slash. SSO_BROKER_NAME and SSO_BROKER_SECRET must be data which exists in your server's brokers table.
Edit your app/Http/Kernel.php by adding \AbdelhamidErrahmouni\LaravelSSO\Middleware\SSOAutoLogin::class middleware to $routeMiddleware array. It should look like this:
protected $routeMiddleware = [ 'auto_login' => \AbdelhamidErrahmouni\LaravelSSO\Middleware\SSOAutoLogin::class, //... ];
Last but not least, you need to edit app/Http/Controllers/Auth/LoginController.php. You should add two functions into LoginController class which will authenticate your client through SSO server but not your Broker page.
protected function attemptLogin(Request $request) { $broker = new \AbdelhamidErrahmouni\LaravelSSO\LaravelSSOBroker; $credentials = $this->credentials($request); return $broker->login($credentials[$this->username()], $credentials['password']); } public function logout(Request $request) { $broker = new \AbdelhamidErrahmouni\LaravelSSO\LaravelSSOBroker; $broker->logout(); $this->guard()->logout(); $request->session()->invalidate(); return redirect('/'); }
That's all. For other Broker pages you should repeat everything from the beginning just changing your Broker name and secret in configuration file.
Example .env options:
SSO_SERVER_URL=https://server.test SSO_BROKER_NAME=site1 SSO_BROKER_SECRET=892asjdajsdksja74jh38kljk2929023
统计信息
- 总下载量: 4
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-02-17