Zitadel OAuth2 Provider for Laravel Socialite

4.1.0 2024-08-26 06:14 UTC

This package is auto-updated.

Last update: 2024-08-26 21:46:13 UTC


README

composer require socialiteproviders/zitadel

安装与基本用法

请参阅基本安装指南,然后按照以下特定提供者说明进行操作。

将配置添加到config/services.php

'zitadel' => [
  'client_id' => env('ZITADEL_CLIENT_ID'),
  'client_secret' => env('ZITADEL_CLIENT_SECRET'),
  'redirect' => env('ZITADEL_REDIRECT_URI'),
  'base_url' => env('ZITADEL_BASE_URL'),
  'organization_id' => env('ZITADEL_ORGANIZATION_ID'),                      // Optional
  'project_id' => env('ZITADEL_PROJECT_ID'),                                // Optional
  'post_logout_redirect_uri' => env('ZITADEL_POST_LOGOUT_REDIRECT_URI')     // Optional
],

添加提供者事件监听器

Laravel 11+

在Laravel 11中,默认的EventServiceProvider提供者已被移除。取而代之,您需要在AppServiceProviderboot方法中使用Event外观的listen方法来添加监听器。

  • 注意:除非您用自己的提供者覆盖了它们,否则您不需要为内置的Socialite提供者添加任何内容。
Event::listen(function (\SocialiteProviders\Manager\SocialiteWasCalled $event) {
    $event->extendSocialite('zitadel', \SocialiteProviders\Zitadel\Provider::class);
});
Laravel 10或以下配置包的监听器以监听`SocialiteWasCalled`事件。

将事件添加到app/Providers/EventServiceProvider中的listen[]数组中。有关详细说明,请参阅基本安装指南

protected $listen = [
    \SocialiteProviders\Manager\SocialiteWasCalled::class => [
        // ... other providers
        \SocialiteProviders\Zitadel\ZitadelExtendSocialite::class.'@handle',
    ],
];

用法

现在您应该能够像通常使用Socialite一样使用该提供者(假设您已安装外观)。

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

获取登出URL

$idToken = ...; // Retrieve ID token here
return redirect()->away(Socialite::driver('zitadel')->getLogoutUrl($idToken));

注意

传递ID令牌是可选的,但建议用于注销特定用户会话。