devshaded / sparebank1-socialite-provider
0.0.1
2024-09-12 12:53 UTC
Requires
- php: ^8.1
- laravel/framework: ^11.0
- laravel/socialite: ^5.16
- socialiteproviders/manager: ^4.6
README
这是一个用于OAuth登录的SpareBank1自定义提供程序
安装
要使用composer安装此包,请运行以下命令
composer require devshaded/sparebank1-socialite-provider
配置
安装包后,请在 config/services.php
中注册提供程序,如下所示
'sb1' => [ 'client_id' => env('SB1_CLIENT_ID'), 'client_secret' => env('SB1_CLIENT_SECRET'), 'finInstId' => env('SB1_FIN_INST_ID'), 'redirect' => env('SB1_REDIRECT_URI'), ],
用法
要启动SpareBank1的OAuth登录,您可以使用以下代码将用户重定向到认证页面
return Socialite::driver('sp1')->redirect();
处理用户认证后的回调
$user = Socialite::driver('sp1')->user();
环境变量
确保您已将以下变量添加到您的 .env
文件中
SB1_CLIENT_ID=your-client-id SB1_CLIENT_SECRET=your-client-secret SB1_REDIRECT_URI=your-redirect-url SB1_FIN_INST_ID=fid-ringerike-hadeland
将您的-client-id、your-client-secret和your-redirect-url替换为您的SpareBank1 OAuth凭据中的相应值。
示例
Route::get('/oauth/redirect', function () { return Socialite::driver('sb1')->redirect(); }); Route::get('/oauth/callback', function () { $user = Socialite::driver('sb1')->user(); $existingUser = User::where('email', $user->getEmail())->first(); if ($existingUser) { $existingUser->update([ 'firstname' => $user->user['firstname'], 'lastname' => $user->user['lastname'], 'email' => $user->getEmail(), 'sub' => $user->user['sub'], 'dob' => $user->user['dateOfbirth'], 'phone' => $user->user['mobilePhoneNumber'], ]); $existingUser->accessToken()->update([ 'token' => $user->token, 'refresh_token' => $user->refreshToken, 'expires_in' => $user->expiresIn, ]); } else { $newUser = User::create([ 'firstname' => $user->user['firstname'], 'lastname' => $user->user['lastname'], 'email' => $user->getEmail(), 'sub' => $user->user['sub'], 'dob' => $user->user['dateOfbirth'], 'phone' => $user->user['mobilePhoneNumber'], ]); $newUser->accessToken()->create([ 'token' => $user->token, 'refresh_token' => $user->refreshToken, 'expires_in' => $user->expiresIn, ]); } });
许可证
此包是开源软件,许可协议为MIT。