定制 digitive/vipps-socialite-provider 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

digitive/vipps-socialite-provider

最新稳定版本:2.0.1

Composer 安装命令:

composer require digitive/vipps-socialite-provider

包简介

Vipps OAuth2 Provider for Laravel Socialite

README 文档

README

1. Installation

// This assumes that you have composer installed globally
composer require digitive/vipps-socialite-provider

2. Service Provider

Add to app.php:

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

3. Event Listener

  • Add SocialiteProviders\Manager\SocialiteWasCalled event to your listen[] array in app/Providers/EventServiceProvider.

Example:

/**
 * The event handler mappings for the application.
 *
 * @var array
 */
protected $listen = [
    \SocialiteProviders\Manager\SocialiteWasCalled::class => [
        '\SocialiteProviders\Vipps\VippsExtendSocialite@handle',
    ],
];

4. Configuration setup

You will need to add vipps to the services configuration file so that after config files are cached for usage in production environment (Laravel command artisan config:cache) all config is still available.

Add to config/services.php.

'vipps' => [
    'client_id' => env('VIPPS_CLIENT_ID'),
    'client_secret' => env('VIPPS_CLIENT_SECRET'),
    'redirect' => env('VIPPS_REDIRECT_URI'),
],

Remember to whitelist the redirect_uri in the Vipps portal. Client ID and secret is also available in the Vipps portal.

5. Usage

  • Laravel docs on configuration
  • Guzzle version 7 or later is required
  • You should now be able to use it like you would regularly use Socialite (assuming you have the facade installed):

To initiate the Vipps login, add this to your controller

return Socialite::driver('vipps')->redirect();

You've now gotten a user token from Vipps in your callback function. Now we need to use the user token to get the phone number of the authenticated user.

$user = Socialite::driver('vipps')->stateless()->user();

Example for a 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) {
             //Handle errors for missing user
         }

         //Authenticate user
     }
}

If you need multiple redirect URLs you can define a redirect url in the controller.

Example for specified redirect URL:

Socialite::driver('vipps')->redirectUrl($redirectUrl)->redirect();

The same goes for scopes

Example for specified scopes:

Socialite::diver('vipps')->scopes(['openid', 'api_version_2', 'phoneNumber', 'name'])->redirect();

Vipps guidelines

  • When using Vipps login you need to use the login button svgs provided by Vipps. Go to Vipps design guidelines for more info.

License

MIT © Digitive AS

统计信息

  • 总下载量: 466
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-09-03