redsnapper / socialite-swissrx
瑞士Rx的Laravel Socialite提供程序,瑞士Rx是一个针对瑞士医疗保健专业人员的身份验证系统。
v1.0.6
2023-03-08 15:22 UTC
Requires
- php: ^8.0|^8.1
- ext-json: *
- firebase/php-jwt: ^6.4
- socialiteproviders/manager: ~4.0
Requires (Dev)
- orchestra/testbench: ^v8.0
- phpunit/phpunit: ^9.5
- psalm/plugin-laravel: ^2.8
- vimeo/psalm: ^5.7
README
#Sociaite/Swiss-Rx
瑞士Rx的Laravel Socialite驱动程序,瑞士Rx是一个针对瑞士医疗保健专业人员的身份验证系统
此仓库可用于提供与[瑞士Rx] (https://swiss-rx-login.ch/)的OAuth身份验证。
安装
您可以通过composer安装此包
composer require redsnapper/socialite-swissrx
在您的EventServiceProvider.php
中添加事件监听器映射
//Providers\EventServiceProvider.php use RedSnapper\SwissRx\SwissRxExtendSocialite; use SocialiteProviders\Manager\SocialiteWasCalled; protected $listen = [ //... SocialiteWasCalled::class => [ SwissRXExtendSocialite::class ], ];
然后前往您的services.php并添加swissrx凭据。当使用您的回调时,请确保它首先已注册到swiss-rx。
//config\services.php //... 'swissrx' => [ 'client_id' => env('SWISS_RX_KEY'), 'client_secret' => env('SWISS_RX_SECRET'), 'redirect' => config('app.url') . "/swiss-rx/callback", 'token_leeway' => env('SWISS_RX_TOKEN_LEEWAY'), // optional - you can use this if you are getting 'Cannot handle token prior to...' exceptions ],
最后,将您的Swiss-Rx密钥和密钥添加到.env
文件中
SWISS_RX_KEY=<your-key> SWISS_RX_SECRET=<your-secret>
用法
注册您的路由
//web.php Route::get('/swiss-rx/login', [LoginController::class, 'redirectToProvider'])->name('login'); Route::get('/swiss-rx/callback', [LoginController::class, 'handleProviderCallback'])->name('login.callback');
然后在您的控制器中调用redirectToProvider()
和handleProviderCallback()
//Http\Controllers\LoginController.php use Laravel\Socialite\Facades\Socialite; public function redirectToProvider() { return Socialite::driver('swissrx')->with([ 'lang' => request()->get('lang', 'en') ])->redirect(); } public function handleProviderCallback() { $swissRxUser = Socialite::driver('swissrx')->user(); retunr $swissRxUser; }
作用域
默认使用匿名
作用域,它不会返回除ID之外的用户数据。要检索用户数据,请使用socialite方法setScopes()
请求个人
作用域
public function redirectToProvider() { return Socialite::driver('swissrx')->with([ 'lang' => request()->get('lang', 'en') ]) ->setScopes(['personal']) ->redirect(); }
测试
vendor/bin/phpunit
变更日志
有关最近更改的更多信息,请参阅变更日志。
贡献
有关详细信息,请参阅贡献。
许可
MIT许可证(MIT)。有关更多信息,请参阅许可文件。