maras0830/laravel5-battlenet-api

v1.0.7 2017-10-19 02:28 UTC

This package is auto-updated.

Last update: 2024-09-12 17:53:20 UTC


README

Battle.net API 使用 OAuth 2.0,一种联邦访问控制机制,以帮助保护我们提供给公众的 API 中的部分内容。通过使用 OAuth,您可以允许 Battle.net 处理身份验证过程,并接收代表该用户的唯一 ID,然后使用访问令牌访问允许的资源,如他们的魔兽世界角色、星际争霸 II 个人资料或其他适当的数据。OAuth 的使用本身相对简单,但流程一开始可能看起来有点令人畏惧。希望您能通过以下流程,快速集成到 Battle.net,更多地关注构建酷炫的想法,而不是如何从玩家那里获取数据。

BattleNet oAuth 只提供简单的账户信息(BattleNet 账户 ID,BattleNet 标签),例如这样

{
    "id": XXXXXXXX,
    "battletag": "Maras#3218"
}

仅支持 OAuth 并获取认证用户,我将在未来开发 WOW 和 SC2 游戏数据 API,欢迎所有热爱 Laravel 和 Blizzard 的人加入。

查看官方 GitHub Blizzard GitHub 查看官方 API 文档 Battle.Net 开发者

安装

将包添加到 composer.json
在 composer.json 中要求包

"maras0830/laravel5-battlenet-api": "dev-master"

config/app.php 中添加 providers

Maras0830\BattleNetApi\Providers\ApiServiceProvider::class

config/app.php 中添加 aliases

'BattleNetApi'             => Maras0830\BattleNetApi\Facades\ApiServiceFacade::class,

发布配置
发布配置。

php artisan vendor:publish --force

发布后,您会在配置文件夹下发现 config/battlenet-api.php,并按照 Battle.Net 开发者 进行注册和开发者配置,发布后您将在配置文件夹下找到配置文件,注册并设置 Battle.Net 开发者

return [
    'region' => env('Battle_net_region', 'sea'),
    'api_url' => "https://". env('Battle_net_region', 'sea') .".api.battle.net",
    'api_url_cn' => "https://api.battle.com.cn/",
    'client_id' => env('Battle_net_client_id', ''),
    'client_secret' => env('Battle_net_client_secret', ''),
    'redirect_url' => env('APP_URL'). '/' .env('Battle_net_redirect_url', '') . '/battleNet/callback',
    'scopes' => [
        'wow.profile',
        'sc2.profile'
    ]
];

用法

您可以在路由和控制器中使用 authenticationURL,如下所示

路由

Route::get('battleNet', 'auth\social\AuthController@redirectToProvider_BattleNet');
Route::get('battleNet/callback', 'auth\social\AuthController@handleProviderCallback_BattleNet');
public function redirectToProvider_BattleNet()
{
    return redirect(BattleNetApi::authenticationURL()); // redirect to BattleNet login page
}

回调函数

public function handleProviderCallback_BattleNet()
{
    $social_type = "BattleNet";

    if (isset($_GET['code'])) {
        $code = $_GET['code'];

        $token = BattleNetApi::requestToken($code);

        $account = BattleNetApi::authenticatedUser($token);
    } else
        return redirect('/')->withErrors('failed.');

}

OAuth 2.0

OAuth 2.0 是 2006 年末最初创建的 OAuth 协议的下一代。OAuth 2.0 侧重于客户端开发人员的简便性,同时为 Web 应用程序、桌面应用程序、移动电话和家庭娱乐设备提供特定的授权流程。本规范在 IETF OAuth 工作组中开发,并基于 OAuth WRAP 建议书。

HTTPS

OAuth 在发布 2.0 版本时进行的一个主要更改是从协议中删除传输考虑因素,而是要求实现者自行处理代码和令牌的传输。在实际情况中,这意味着需要 HTTPS,为了额外的安全性,建议在 HTTPS 握手过程中检查证书。这将防止任何意外,并防止代码在传输过程中被截获。