rinkp/socialite-azure-b2c

此包已被废弃,不再维护。未建议替代包。

适用于 Laravel Socialite 的 Microsoft Azure B2C OAuth2 提供程序

v0.1 2020-08-01 19:22 UTC

This package is auto-updated.

Last update: 2023-03-29 01:01:34 UTC


README

1. 安装

// This assumes that you have composer installed globally
composer require rinkp/socialite-azureb2c

2. 服务提供程序

  • 如果已添加,请从 config\app.php 中的 providers[] 数组中移除 Laravel\Socialite\SocialiteServiceProvider
  • \SocialiteProviders\Manager\ServiceProvider::class 添加到 config\app.php 中的 providers[] 数组。

例如

'providers' => [
    // a whole bunch of providers
    // remove 'Laravel\Socialite\SocialiteServiceProvider',
    \SocialiteProviders\Manager\ServiceProvider::class, // add
];

3. 事件监听器

  • 用于登录(必需)
    • 如果尚未添加,请将 \SocialiteProviders\Manager\SocialiteWasCalled::class 事件添加到您的 listen 数组中。
    • SocialiteProviders\\AzureB2C\\AzureB2CExtendSocialite@handle 监听器事件添加到 SocialiteWasCalled 事件。
  • 用于单点登出(可选)
    • 如果尚未添加,请将 Illuminate\Auth\Events\Logout::class 事件添加到您的 listen 数组中。
    • SocialiteProviders\\AzureB2C\\AzureB2CExtendSocialite@logOut 监听器事件添加到 Logout 事件。
class EventServiceProvider extends ServiceProvider
{
    /**
     * ...
     */
    protected $listen = [
        /* ... */

        \SocialiteProviders\Manager\SocialiteWasCalled::class => [
            'SocialiteProviders\\AzureB2C\\AzureB2CExtendSocialite@handle',
        ],

        Illuminate\Auth\Events\Logout::class => [
            'SocialiteProviders\\AzureB2C\\AzureB2CExtendSocialite@logOut',
        ],

        /* ... */
    ];
}

请参阅 SocialiteProviders/Manager 文档。

4. 配置设置

config/services.php 中,您可以设置所需的配置。

设置
client_id Azure 应用注册客户端 ID
client_secret Azure 应用注册客户端密钥
redirect 回调 URL
redirect_logout 成功单点登出后重定向的位置
tenant 与租户关联的验证域名
tenant_name 您的租户名称(.onmicrosoft.com 或 .b2clogin.com 前的部分)
flow_name 在目录中注册的流的名称
cache_time OpenID 配置和 JWT 密钥需要缓存多长时间
return [
    /* ... */

    'azureb2c' => [
        'client_id' => env('AZUREB2C_CLIENT_ID'),
        'client_secret' => env("AZUREB2C_CLIENT_SECRET"),
        'redirect' => env("AZUREB2C_REDIRECT_URL"),
        'redirect_logout' => env("AZUREB2C_LOGOUT_URL"),
        'tenant' => env("AZUREB2C_TENANT", env("AZUREB2C_TENANT_NAME") . ".onmicrosoft.com"),
        'tenant_name' => env("AZUREB2C_TENANT_NAME"),
        'flow_name' => env("AUZREB2C_FLOW_NAME"),
        'cache_time' => env("AUZREB2C_CACHE_TIME")
    ],

    /* ... */
];