killmails/oauth2-eve

EVE Online OAuth 2.0 客户端提供者,适用于 PHP League 的 OAuth2-Client

v2.0.2 2024-03-04 01:32 UTC

This package is auto-updated.

Last update: 2024-09-04 02:41:01 UTC


README

GitHub Source GitHub Release GitHub License GitHub Actions Workflow Status Packagist Downloads

此软件包为 PHP League 的 OAuth 2.0 客户端 提供EVE Online OAuth 2.0 支持。

安装

要安装,请使用 composer

composer require killmails/oauth2-eve:^2.0

用法

用法与 The League 的 OAuth 客户端相同,使用 \Killmails\OAuth2\Client\Provider\EveOnline 作为提供者。

授权码流

use Killmails\OAuth2\Client\Provider\EveOnline;

$sso = new EveOnline([
    'clientId' => '{eveonline-client-id}',
    'clientSecret' => '{eveonline-client-secret}',
    'redirectUri' => 'https://example.com/callback-url',
]);

if (empty($_GET['code'])) {
    $url = $sso->getAuthorizationUrl();
    $_SESSION['state'] = $sso->getState();

    header('Location: '.$authUrl);
} elseif (empty($_GET['state']) || ($_GET['state'] !== $_SESSION['state'])) {
    unset($_SESSION['state']);
} else {
    $token = $sso->getAccessToken('authorization_code', [
        'code' => $_GET['code']
    ]);

    $user = $sso->getResourceOwner($token);

    printf('Hello, %s (%d)', $user->getName(), $user->getId());
}

管理作用域

在创建您的 EVE Online 授权 URL 时,您可以指定应用程序可能授权的状态和作用域。

$options = [
    'scope' => ['esi-killmails.read_killmails.v1']
];

$url = $sso->getAuthorizationUrl($options);

// ...

如果都没有定义,提供者将使用内部默认值。

测试

composer test

许可证

MIT 许可证 (MIT)。请参阅 许可证文件 获取更多信息。