[Hybridauth] добавление провайдера battle.net
Всем привет!
Пытаюсь добавить нового провайдера в Hybridauth, но что-то не получается.
Создал в каталоге core/components/hybridauth/model/hybridauth/lib/Providers/ файл BattleNet.php с таким содержимым.
Теперь при попытке привязать учетку, в этом методе, в переменной response получаю ошибку:
Пытаюсь добавить нового провайдера в Hybridauth, но что-то не получается.
Создал в каталоге core/components/hybridauth/model/hybridauth/lib/Providers/ файл BattleNet.php с таким содержимым.
<?php
class Hybrid_Providers_BattleNet extends Hybrid_Provider_Model_OAuth2
{
// default permissions
public $scope = "wow.profile";
public $state = "";
function initialize()
{
parent::initialize();
// Provider api end-points
$this->api->authorize_url = "https://eu.battle.net/oauth/authorize";
$this->api->token_url = "https://eu.battle.net/oauth/token";
$this->state = bin2hex(openssl_random_pseudo_bytes(16));
if (!empty($this->config['fields']))
$this->fields = $this->config['fields'];
}
function loginBegin()
{
Hybrid_Auth::redirect( $this->api->authorizeUrl( array( "scope" => $this->scope, "state" => $this->state ) ) );
}
}На dev.battle.net создал приложение, где получил client_id и client_secret, добавил в системные настройки нового провайдера.Теперь при попытке привязать учетку, в этом методе, в переменной response получаю ошибку:
{"error":"unauthorized","error_description":"An Authentication object was not found in the SecurityContext"}Не могу понять почему не удается получить access token. Прошу помощи, может кто сталкивался с подобным или может уже подключал battle.net =) Комментарии: 2
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
нужно передать авторизацию в заголовках
а battle.net принимает client_secret и client_id из заголовков запроса
github.com/bezumkin/modx-hybridauth/blob/master/core/components/hybridauth/model/hybridauth/lib/thirdparty/OAuth/OAuth2Client.php#L34
github.com/bezumkin/modx-hybridauth/blob/master/core/components/hybridauth/model/hybridauth/lib/thirdparty/OAuth/OAuth2Client.php#L211
По идее надо сделать так в BattleNet.php:
Буду дальше разбираться.
Это добавил в initialize():