josecl/claveunica

Chile政府ClaveÚnica OAuth2认证服务的Laravel客户端

v1.0.0 2022-08-29 13:29 UTC

This package is auto-updated.

Last update: 2024-09-29 06:09:09 UTC


README

Chile政府ClaveÚnica OAuth2认证服务的Laravel客户端。

基于 socialiteproviders/claveunica,允许在开发环境中通过 josecl/emulador-claveunica 模拟ClaveÚnica服务。

要求

  • Laravel 9
  • php 8.0

安装和配置

使用方式类似于 Socialite 提供者。

安装依赖

composer require josecl/claveunica

将配置添加到 config/services.php 文件中

'claveunica' => [    
  'client_id' => env('CLAVEUNICA_CLIENT_ID'),  
  'client_secret' => env('CLAVEUNICA_CLIENT_SECRET'),  
  'redirect' => env('CLAVEUNICA_REDIRECT_URI') 
],

app/Providers/EventServiceProvider.php 文件中添加 事件监听器SocialiteWasCalled 事件

protected $listen = [
    \SocialiteProviders\Manager\SocialiteWasCalled::class => [
        // ...
        \Josecl\ClaveUnica\ClaveUnicaExtendSocialite::class . '@handle',
    ],
];

使用方法

使用控制器进行重定向以使用OAuth服务

return Socialite::driver('claveunica')->redirect();

用户完成认证流程后,将被重定向到由 CLAVEUNICA_REDIRECT_URI 定义的URL。

您需要配置第二个控制器来处理该重定向并完成您的应用程序中的登录。您可以通过以下示例获取认证用户的资料

    $claveUnicaUser = Socialite::driver('claveunica')->user();

    dump($claveUnicaUser->run);
    dump($claveUnicaUser->dv);
    dump($claveUnicaUser->first_name);
    dump($claveUnicaUser->last_name);

ClaveÚnica模拟器

在开发环境中,您可以通过 josecl/emulador-claveunica 模拟ClaveÚnica流程来登录。

安装

composer require josecl/emulador-claveunica

使用 josecl/emulador-claveunica 的文档更新 config/services.php 文件中的附加参数并配置环境变量。

'claveunica' => [    
  'client_id' => env('CLAVEUNICA_CLIENT_ID'),  
  'client_secret' => env('CLAVEUNICA_CLIENT_SECRET'),  
  'redirect' => env('CLAVEUNICA_REDIRECT_URI') 
  // Configura servicio alternativo a ClaveÚnica
  'auth_uri' => env('CLAVEUNICA_AUTH_URI', 'https://accounts.claveunica.gob.cl/openid/authorize'),
  'token_uri' => env('CLAVEUNICA_TOKEN_URI', 'https://accounts.claveunica.gob.cl/openid/token'),
  'user_uri' => env('CLAVEUNICA_USER_URI', 'https://www.claveunica.gob.cl/openid/userinfo'),
],