mattcollins171 / osm-socialite-provider
Laravel Socialite 的 OSM OAuth2 提供者
1.0.0
2023-08-13 19:00 UTC
Requires
- php: ^8.1
- ext-json: *
- socialiteproviders/manager: ~4.0
README
composer require socialiteproviders/cognito
安装与基本使用
请参阅基本安装指南,然后遵循以下特定提供者的说明。
将配置添加到 config/services.php
'cognito' => [ 'host' => env('COGNITO_HOST'), 'client_id' => env('COGNITO_CLIENT_ID'), 'client_secret' => env('COGNITO_CLIENT_SECRET'), 'redirect' => env('COGNITO_CALLBACK_URL'), 'scope' => explode(",", env('COGNITO_LOGIN_SCOPE')), 'logout_uri' => env('COGNITO_SIGN_OUT_URL') ],
添加提供者事件监听器
配置包的监听器以监听 SocialiteWasCalled
事件。
将事件添加到 app/Providers/EventServiceProvider
中的 listen[]
数组。有关详细说明,请参阅基本安装指南。
protected $listen = [ \SocialiteProviders\Manager\SocialiteWasCalled::class => [ // ... other providers \SocialiteProviders\Cognito\CognitoExtendSocialite::class.'@handle', ], ];
使用方法
现在您应该能够像通常使用 Socialite 一样使用此提供者(假设您已安装外观)
return Socialite::driver('cognito')->redirect();
从应用程序和 Cognito 注销,然后重定向到 URL
public function cognitoLogout() { Auth::logout(); // Log out app return redirect(Socialite::driver('cognito')->logoutCognitoUser()); // Call cognito logout url }
从应用程序和 Cognito 注销,然后重定向回登录界面。
public function cognitoSwitchAccount() { Auth::logout(); // Log out app $scopes = explode(",", env('COGNITO_LOGIN_SCOPE')); // Override default scopes if needed return redirect(Socialite::driver('cognito')->scopes($scopes)->switchCognitoUser()); // Call cognito logout url }
示例环境变量
COGNITO_HOST=https://your-app.auth.ap-southeast-2.amazoncognito.com COGNITO_CLIENT_ID=abc123 COGNITO_CLIENT_SECRET=abc123 COGNITO_CALLBACK_URL=https://your-app.ngrok.io/oauth2/callback COGNITO_SIGN_OUT_URL=https://example.com COGNITO_LOGIN_SCOPE="openid,profile"
有用的提示
- Cognito 需要 SSL,尝试 ngrok 进行本地测试(除了注销 URL 以外都适用)。
- 返回的用户数组包含所有可用属性(在您的 Cognito 客户端应用程序中设置这些)。
- 如果收到状态错误,请尝试此代码
$user = Socialite::driver('cognito')->stateless()->user();
- "sub" 是 Cognito UUID,有关属性更多信息请参阅 这里
- .env COGNITO_CALLBACK_URL 必须在您的 Cognito 客户端应用程序的回调 URL 中
- .env COGNITO_SIGN_OUT_URL 必须在您的 Cognito 客户端应用程序的注销 URL 中
返回的用户字段
id
昵称
姓名
电子邮件
头像
user[]
可用的 Cognito 属性