dptsi/laravel-sso

此包的最新版本(v2.2.0)没有可用的许可证信息。

Laravel SSO ITS认证包

v2.2.0 2024-04-05 04:16 UTC

This package is auto-updated.

Last update: 2024-09-05 05:06:49 UTC


README

laravel框架中ITS SSO认证的辅助包

要求

  1. PHP 7.4或更高版本
  2. Laravel版本8
  3. myits/openid-connect-client

安装

使用composer安装

composer require dptsi/laravel-sso

用法

登录

@method static void login(\Dptsi\Sso\Requests\OidcLoginRequest $request)

  • 创建登录请求(提供ITS SSO的凭证)

    use Dptsi\Sso\Requests\OidcLoginRequest;
    
    $request = new OidcLoginRequest(
        config('openid.provider'),
        config('openid.client_id'),
        config('openid.client_secret'),
        config('openid.redirect_uri'),
        config('openid.scope'),
        config('openid.allowed_roles')
    );
  • 使用OidcLoginRequest参数调用静态login方法

    use Dptsi\Sso\Facade\Sso;
    
    Sso::login($request);

登出

@method static void logout(\Dptsi\Sso\Requests\OidcLogoutRequest $request)

  • 创建登出请求(提供ITS SSO的凭证)

    use Dptsi\Sso\Requests\OidcLogoutRequest;
    
    $request = new OidcLogoutRequest(
        config('openid.provider'),
        config('openid.client_id'),
        config('openid.client_secret'),
        config('openid.post_logout_redirect_uri')
    );
  • 使用OidcLogoutRequest参数调用静态logout方法

    use Dptsi\Sso\Facade\Sso;
    
    Sso::logout($request);

检查用户是否已认证

@method static bool check()

use Dptsi\Sso\Facade\Sso;

Sso::check();

获取当前认证用户

@method static \Dptsi\Sso\Models\User|null user()

use Dptsi\Sso\Facade\Sso;

Sso::user();

设置当前认证用户

@method static void set(\Dptsi\Sso\Models\User $user)

use Dptsi\Sso\Facade\Sso;
use Dptsi\Sso\Models\User;

$user = Sso::user();

$user->setActiveRole($role);

Sso::set($user);

用于更改角色的目的

获取当前认证用户的令牌

use Dptsi\Sso\Facade\Sso;

Sso::token();

附加信息

中间件

从路由或控制器调用中间件sso以检查用户是否已认证

Route::middleware(['web', 'sso'])

SSO辅助函数

sso()->Sso::相同,可以从控制器、路由、视图等地方调用

sso()->check()
sso()->user()
...

声明支持

支持ITS SSO的任何声明,不同的声明确定Dptsi\Sso\Models\User模型属性(是否为null),更多关于用户模型