sas1024/socialite-xenforo-bdapi

Laravel Socialite 用于 XenForo 的 [bd] Api OAuth2 提供者

v1.0.0 2017-08-27 21:54 UTC

This package is auto-updated.

Last update: 2024-09-05 20:30:56 UTC


README

安装和配置

安装 Laravel Socialite(见这里:https://github.com/laravel/socialite/blob/2.0/readme.md

在您的 XenForo 安装中安装 [bd] Api(见这里:https://github.com/xfrocks/bdApi

安装 XenForo [bd] Api socialite 提供者

composer require sas1024/socialite-xenforo-bdapi

添加事件和监听器

将 SocialiteProviders\Manager\SocialiteWasCalled::class 事件添加到 <app_name>/Providers/EventServiceProvider 中的 listen[] 数组中,如下所示

    /**
     * The event listener mappings for the application.
     *
     * @var array
     */
    protected $listen = [
        'App\Events\Event' => [
            'App\Listeners\EventListener',
        ],
        SocialiteWasCalled::class => [
            'Sas1024\Socialite\XenForo\XenForoExtendSocialite@handle',
        ],
    ];

服务数组和 .env 文件

添加到 config/services.php

    'xenforo' => [
        'client_id' => env('XENFORO_CLIENT_ID'),
        'client_secret' => env('XENFORO_CLIENT_SECRET'),
        'redirect' => env('XENFORO_CALLBACK_URL'),
        'xenforo_url' => env('XENFORO_URL'),
    ],

将提供者值追加到您的 .env 文件中:**注意:请添加公钥和私钥**!

XENFORO_CLIENT_ID=
XENFORO_CLIENT_SECRET=
XENFORO_CALLBACK_URL=
XENFORO_URL=

示例

XENFORO_CLIENT_ID=kaupfd1fscx
XENFORO_CLIENT_SECRET=oAnW4NUK1iHLl58PjpQI
XENFORO_CALLBACK_URL=${APP_URL}/login/xenforo/callback
XENFORO_URL=http://xenforo-with-bd.local/forum/api/

用法

<?php

namespace App\Http\Controllers\Auth;

use Socialite;

class AuthController extends Controller
{
    /**
     * Redirect the user to the XenForo [bd] Api authentication page.
     *
     * @return Response
     */
    public function redirectToProvider()
    {
        return Socialite::driver('xenforo')->redirect();
    }

    /**
     * Obtain the user information from XenForo [bd] Api.
     *
     * @return Response
     */
    public function handleProviderCallback()
    {
        $user = Socialite::driver('xenforo')->user();
    }
}

获取用户详情

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

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

$token = $user->token;
$expiresIn = $user->expiresIn;
$user->id;
$user->avatar;
$user->nickname;
$user->email;