Главная > Программирование > Снова OpenID: server_not_allowed

Снова OpenID: server_not_allowed

После восстановления работоспособности сайта пришлось заново логиниться на некоторые сайты с использованием OpenID-авторизации. Как и ожидалось, сразу все не заработало.
На livejournal.com и многих других сайтах, где использовался perl-модуль OpenID многозначитально писало: server_not_allowed.

WordPress и некоторые другие сервера которые нашел для тестов ругались более осмысленно: No matching endpoint found after discovering http://klim.in.ua/

В гугле ничего полезного по данным ошибкам не нашел, пришлось ковырять вордпресовский плагин.

Оказалось, что где-то в недрах плагина ошибка все-таки нормально диагностируется, но наружу этот текст не выдается:
OP Endpoint mismatch. Expected http://klim.in.ua/wp/index.php/openid/server, got http://klim.in.ua/wp/openid/server

После недолгих поисков нашел, что этот некорректный дарес выдается через XRDS (http://klim.in.ua/wp/?xrds):

  1.  
  2. <!— OpenID Consumer Service —>
  3. <Service priority="10">
  4. <Type>
  5. http://specs.openid.net/auth/2.0/return_to
  6. </Type>
  7. <URI>
  8. http://klim.in.ua/wp/index.php/openid/consumer
  9. </URI>
  10. </Service>
  11.  

Выдает такой адрес файл openid/common.php:

  1.  
  2.         if ($wp_rewrite->using_permalinks()) {
  3.                 $url .= ‘index.php/openid/’ . $service;
  4.  

пришлось поправить на:

  1.  
  2.         if ($wp_rewrite->using_permalinks()) {
  3.                 $url .= ‘openid/’ . $service;
  4.  
  5.  

После чего все нормально заработало.

Оставить комментарий

Или