redsnapper/socialite-swissrx

瑞士Rx的Laravel Socialite提供程序,瑞士Rx是一个针对瑞士医疗保健专业人员的身份验证系统。

v1.0.6 2023-03-08 15:22 UTC

This package is auto-updated.

Last update: 2024-08-30 17:30:01 UTC


README

#Sociaite/Swiss-Rx

瑞士Rx的Laravel Socialite驱动程序,瑞士Rx是一个针对瑞士医疗保健专业人员的身份验证系统

Latest Version on Packagist GitHub Tests Action Status Total Downloads

此仓库可用于提供与[瑞士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)。有关更多信息,请参阅许可文件