mrstebo/laravel-socialite-ekm

EKM OAuth2 Provider for Laravel Socialite

v0.1.0 2020-02-22 18:33 UTC

This package is auto-updated.

Last update: 2024-09-23 06:18:00 UTC


README

EKM OAuth2 Provider for Laravel Socialite

Packagist Software License StyleCI

此包允许您使用EKM通过Laravel Socialite。

安装

您可以通过composer安装此包

composer require mrstebo/laravel-socialite-ekm

注意:如果您使用Laravel 5.5+,则可以跳过服务提供者的注册,因为它应该是自动发现的。

然后您应该在您的config/app.php文件中注册服务提供者

'providers' => [
    // Other service providers
    
    Mrstebo\LaravelSocialiteEkm\Provider::class,

]

您还需要添加OAuth应用的凭证,您可以通过EKM Partners账户获取这些凭证。它们应放在您的config/services.php文件中。您可以复制下面的示例配置以开始

'ekm' => [
    'client_id' => env('EKM_CLIENT_ID'),
    'client_secret' => env('EKM_CLIENT_SECRET'),
    'redirect' => env('EKM_REDIRECT'),
],

基本用法

因此,现在您已准备好对用户进行身份验证!您需要两个路由:一个用于将用户重定向到OAuth提供者,另一个用于在身份验证后接收提供者的回调。我们将使用Socialite外观访问Socialite

<?php

namespace App\Http\Controllers\Auth;

use Socialite;

class AuthController extends Controller
{
    /**
     * Redirect the user to the EKM authentication page.
     *
     * @return Response
     */
    public function redirectToProvider()
    {
        return Socialite::driver('ekm')->redirect();
    }

    /**
     * Obtain the user information from EKM.
     *
     * @return Response
     */
    public function handleProviderCallback()
    {
        $user = Socialite::driver('ekm')->user();

        // $user->token;
    }
}

当然,您需要定义路由到您控制器的方法

Route::get('auth/ekm', 'Auth\AuthController@redirectToProvider');
Route::get('auth/ekm/callback', 'Auth\AuthController@handleProviderCallback');

重定向方法负责将用户发送到OAuth提供者,而用户方法将读取传入的请求并从提供者检索用户信息。

EKM OAuth2不支持在请求上设置作用域,所有作用域都在OAuth应用程序设置中配置。

检索用户详细信息

一旦您有了用户实例,您就可以获取有关用户的更多详细信息

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

// OAuth Two Providers
$token = $user->token;
$refreshToken = $user->refreshToken; // may not always be provided
$expiresIn = $user->expiresIn;

// EKM Specific Providers
$username = $user->user['sub'];
$serverId = $user->user['server_id'];