[HybridAuth] No provider ID specified.
Для тех, кто столкнулся с проблемой:
Опишу свою историю:
После регистрации, пользователь никак не мог привязать свою учетку в Steam.
По нажатию на кнопку, страница профиля обновлялась, а в лог писалось злосчастное:
Убив, часа 4 на проблему, делая бессмысленные вещи, додумался посмотреть в Provider_Adapter.php:
Далее, посмотрел в функцию getProviderCiId:
Все просто. Вверху сайта выводился сниппет авторизации:
Надеюсь, эта скромная заметка сможет кому-либо помочь.
PS:
В моем случае, кнопка vk является частью интерфейса, из-за чего, собственно и был выбран лишь 1 провайдер. Наверное, там, где нужно вывести только определенных провайдеров, стоит пользоваться своим сниппетом?
[HybridAuth] No provider ID specified.
Первым делом, советую поискать ответы в «вопросах».Опишу свою историю:
После регистрации, пользователь никак не мог привязать свою учетку в Steam.
По нажатию на кнопку, страница профиля обновлялась, а в лог писалось злосчастное:
[HybridAuth] No provider ID specified.
Убив, часа 4 на проблему, делая бессмысленные вещи, додумался посмотреть в Provider_Adapter.php:
function factory($id, $params = array()) {
Hybrid_Logger::info("Enter Hybrid_Provider_Adapter::factory( $id )");
# init the adapter config and params
$this->id = $id;
$this->params = $params;
$this->id = $this->getProviderCiId($this->id);
$this->config = $this->getConfigById($this->id);
# check the IDp id
if (!$this->id) {
throw new Exception("No provider ID specified.", 2);
}
...
}
Вывел $id, получил «Steam».Далее, посмотрел в функцию getProviderCiId:
function getProviderCiId($id) {
foreach (Hybrid_Auth::$config["providers"] as $idpid => $params) {
if (strtolower($idpid) == strtolower($id)) {
return $idpid;
}
}
return null;
}
Вывел Hybrid_Auth::$config["providers"]
, получил {"Vkontakte":{"enabled":true,"keys":{"id":"*******","secret":"*******"}}}
Уже догадались в чем была проблема?Все просто. Вверху сайта выводился сниппет авторизации:
[[!officeAuth?
&tplLogin=`header.auth.login`
&tplLogout=`header.auth.logout`
&providers=`Vkontakte`
&providerTpl=`header.auth.vk.btn`
&groups=`Users`
&loginResourceId=`[[++site_start]]`
]]
И соответственно, при попытке передать $id = Steam, отрабатывал первый сниппет, который, в свою очередь, возвращал ошибку «No provider ID specified.», т.к. указан лишь Vkontakte.Надеюсь, эта скромная заметка сможет кому-либо помочь.
PS:
В моем случае, кнопка vk является частью интерфейса, из-за чего, собственно и был выбран лишь 1 провайдер. Наверное, там, где нужно вывести только определенных провайдеров, стоит пользоваться своим сниппетом?