ojisatriani/ssoriau

v1.0.0 2023-02-13 01:38 UTC

This package is auto-updated.

Last update: 2024-10-01 02:31:35 UTC


README

SSO Riau - Laravel

安装

在你的 composer.json 中添加 ojisatriani/ssoriau 包并更新你的依赖项

composer require ojisatriani/ssoriau

配置 Laravel

打开文件 config/app.php,然后添加以下服务提供者(如果你使用的是 Laravel 5.5+,这一步是可选的)

'providers' => [
    // ...
    OjiSatriani\SsoRiau\Laravel\ServiceProvider::class,
],

默认设置在 config/ssoriau.php 中。发布配置以将文件复制到你的自定义配置中

php artisan vendor:publish --provider="OjiSatriani\SsoRiau\Laravel\ServiceProvider" --tag="config"

配置 Sso Riau

'client_id' => env('SSO_RIAU_CLIENT_ID', ''),  // 3rd Party client Id
'client_secret' => env('SSO_RIAU_CLIENT_SECRET', ''),  // 3rd Party client secret
'redirect_uri' => env('SSO_RIAU_REDIRECT_URI', ''),  // 3rd Party url redirect or url to handle callback
'target_uri' => env('SSO_RIAU_TARGET_URI', ''),    // SSO Riau portal

检查 SSO 会话

/**
* SSO login : check SSO session
*/
use OjiSatriani\SsoRiau\\SsoClientLibrary;
public function check(SsoClientLibrary $sso)
{
    $sso->ssoRequest();
}

消费 SSO 会话

use OjiSatriani\SsoRiau\\SsoClientLibrary;
public function callback(Request $request, SsoClientLibrary $sso)
{
    $data_access_token = $sso->ssoCallback();
    if (!empty($data_access_token)) {
        $data_access_token = json_decode($data_access_token);
        $access_token = $data_access_token->access_token; // store access_token within the session if needed?
    }

    if ($access_token != '') {
        //fetch ssoUserInfo
        $ssoUserInfo = $sso->ssoUserInfo($access_token);
        $ssoUserInfo = json_decode($ssoUserInfo);
        $email = $ssoUserInfo->email;
    }
}

注销 SSO 会话

use OjiSatriani\SsoRiau\\SsoClientLibrary;
public function logout(SsoClientLibrary $sso)
{
    $url_back = {return_url};
    $sso->ssoLogout($url_back);
}