mrstebo/laravel-socialite-xero

Laravel Socialite 的 Xero OAuth2 提供者

v0.1.3 2020-07-24 08:13 UTC

This package is auto-updated.

Last update: 2024-09-25 05:00:35 UTC


README

Laravel Socialite 的 Xero OAuth2 提供者

Packagist Software License StyleCI

本包允许您使用 Laravel Socialite 通过 Xero。

安装

您可以通过 composer 安装此包

composer require mrstebo/laravel-socialite-xero

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

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

'providers' => [
    // Other service providers

    Mrstebo\LaravelSocialiteXero\Provider::class,

]

您还需要添加 OAuth 应用程序的凭证,您可以使用Xero 开发者门户获取这些凭证。它们应放置在您的 config/services.php 文件中。您可以将下面的示例配置复制以开始

'xero' => [
    'client_id' => env('XERO_CLIENT_ID'),
    'client_secret' => env('XERO_CLIENT_SECRET'),
    'redirect' => env('XERO_REDIRECT'),
],

基本用法

现在,您已经准备好对用户进行认证了!您需要两个路由:一个用于将用户重定向到 OAuth 提供者,另一个用于接收提供者在认证后的回调。我们将使用 Socialite 门面访问 Socialite

<?php

namespace App\Http\Controllers\Auth;

use Socialite;

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

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

        // $user->token;
    }
}

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

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

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

检索用户详情

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

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

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