ivao-brasil/ivao-socialite

此软件包已被弃用,不再维护。没有建议的替代软件包。

为 IVAO 提供的 Laravel Socialite 提供商

v1.3.0 2021-02-11 13:06 UTC

README

GitHub release (latest by date) Test GitHub Quality Gate Status Packagist Version

为 IVAO 提供的 Laravel Socialite 提供商。

入门

要在您的 Laravel 项目中使用此软件包,您必须首先安装它。推荐通过 Composer 安装此软件包。

composer require ivao-brasil/ivao-socialite

之后,您必须像其他 Socialite 提供商一样,在 Laravel 配置文件中添加配置。为了做到这一点,请转到您的 config/services.php 文件并添加以下会话

"ivao" => [
    "redirect" => "/your-callback"
]

此回调将是 IVAO 登录 API 将转发的 URL。您可以使用 URL 或路由路径进行配置。

或者,在开发过程中,如果您需要将 IVAO 登录模拟到本地应用程序,您可以按照以下方式覆盖调用 URL

"ivao" => [
    "redirect" => "/your-callback",
    "ivao-dev-login-url" => "https:///fakeivaologin/",
    "ivao-dev-login-api" => "https:///fakeivaologin/api/",
]

之后,您就可以使用了。您可以使用它,就像使用任何其他 Socialite 提供商一样。

namespace App\Http\Controllers;

use App\Models\User;
use Illuminate\Support\Facades\Auth;
use Laravel\Socialite\Facades\Socialite;

class IvaoLoginController
{
    public function redirect()
    {
        return Socialite::driver('ivao')->redirect();
    }

    public function callback()
    {
        $ivaoUser = Socialite::driver('ivao')->user()->getRaw();

        Auth::login(new User($ivaoUser));

        return redirect()->to('home');
    }
}

请注意,由于 IVAO API 的限制,Socialite 用户实例受到严重限制:仅实现了 getIdgetName 方法。我们建议您使用 getRaw() 方法,该方法将返回一个包含解析后的登录 API 数据的关联数组。当您调用它时,您将得到如下内容

[
  "vid" => 385415,
  "firstName" => "Joao Pedro",
  "lastName" => "Henrique",
  "administrativeRating" => 2,
  "atcRating" => 5,
  "pilotRating" => 5,
  "division" => "BR",
  "country" => "BR",
  "staff" => [ "BR-AWM", "WD9" ]
]

如果无法使用提供的令牌从 API 中提取用户数据,Socialite 的 user 方法将返回 null

问题和贡献

如果您发现错误/错误/不良行为,请随意打开一个问题来报告它。同时,欢迎并非常欢迎拉取请求。

许可

此项目是 MIT 许可