rinkp / socialite-azure-b2c
此包已被废弃,不再维护。未建议替代包。
适用于 Laravel Socialite 的 Microsoft Azure B2C OAuth2 提供程序
v0.1
2020-08-01 19:22 UTC
Requires
- php: ^5.6 || ^7.0
- ext-json: *
- firebase/php-jwt: ^5.2
- phpseclib/phpseclib: ~2.0
- socialiteproviders/manager: ~2.0 || ~3.0
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") ], /* ... */ ];