sempro / socialite-provider-vipps
Laravel Socialite的Vipps OAuth2提供者
2.0.0
2020-12-11 09:38 UTC
Requires
- php: ^7.3
- ext-json: *
- socialiteproviders/manager: ^4.0
This package is auto-updated.
Last update: 2024-08-24 19:59:48 UTC
README
1. 安装
// This assumes that you have composer installed globally composer require sempro/socialite-provider-vipps
2. 服务提供者
添加到app.php
'providers' => [ Laravel\Socialite\SocialiteServiceProvider::class, \SocialiteProviders\Manager\ServiceProvider::class, ];
3. 事件监听器
- 将
SocialiteProviders\Manager\SocialiteWasCalled
事件添加到您的app/Providers/EventServiceProvider
中的listen[]
数组。
示例
/** * The event handler mappings for the application. * * @var array */ protected $listen = [ \SocialiteProviders\Manager\SocialiteWasCalled::class => [ '\SocialiteProviders\Vipps\VippsExtendSocialite@handle', ], ];
4. 配置设置
您需要向服务配置文件添加一个条目,以便在配置文件缓存以用于生产环境(Laravel命令artisan config:cache
)之后,所有配置仍然可用。
添加到config/services.php
。
'vipps' => [ 'client_id' => env('VIPPS_CLIENT_ID'), 'client_secret' => env('VIPPS_CLIENT_SECRET'), 'redirect' => env('VIPPS_REDIRECT_URI'), ],
记得在Vipps门户中白名单redirect_uri。
5. 使用方法
-
现在您应该能够像常规使用Socialite一样使用它(假设您已安装了外观)
要启动Vipps登录,将以下内容添加到您的控制器中
return Socialite::driver('vipps')->redirect();
您现在已经在回调函数中从Vipps获取了用户令牌。现在我们需要使用用户令牌来获取认证用户的电话号码。
$user = Socialite::driver('vipps')->stateless()->user();
VippsAuthController的示例
<?php namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Laravel\Socialite\Facades\Socialite; class VippsAuthController extends Controller { // User clicked Login in with Vipps button public function index(Request $request) { return Socialite::driver('vipps')->redirect(); } // Vipps callback function (VIPPS_REDIRECT_URL in .env) public function handleCallback() { $user = Socialite::driver('vipps')->stateless()->user(); if (!$user) { //Return error message } //Do Authentication stuff } }
Vipps指南
- 当使用Vipps登录时,您需要使用Vipps提供的登录按钮svg。有关更多信息,请访问Vipps设计指南。
许可
MIT © Sempro AS