maras0830 / laravel5-battlenet-api
Laravel5 BattleNet Api
Requires
- guzzlehttp/guzzle: ^6.2
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 握手过程中检查证书。这将防止任何意外,并防止代码在传输过程中被截获。