happyonlinegr/socialite-provider-vipps

此软件包最新版本(dev-main)没有提供许可证信息。

Vipps Provider for Laravel Socialite

dev-main 2022-07-25 15:20 UTC

This package is not auto-updated.

Last update: 2024-09-20 11:08:12 UTC


README

安装

composer require happyonlinegr/socialite-provider-vipps

服务提供者

添加到 app.php

'providers' => [
    Laravel\Socialite\SocialiteServiceProvider::class,
    \SocialiteProviders\Manager\ServiceProvider::class,
];

事件监听器

  • 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',
    ],
];

配置设置

您需要将条目添加到服务配置文件,以便在配置文件在生产环境中缓存后(使用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. 使用方法

要初始化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
 {
     public function index(Request $request)
     {
         return Socialite::driver('vipps')->redirect();
     }
 
     public function handleCallback()
     {
         $user = Socialite::driver('vipps')->stateless()->user();
 
         if (!$user) {
             //Return error message
         }

         //Do stuff
     }
}