2010-08-27 7 views
3

Корневая страница моего сайта автоматически перенаправляет всех пользователей на некоторую подстраницу через http-заголовок.Однопользовательский OpenID-сервер с Rails

http://example.com/ → http://example.com/subpage

Я хочу использовать свой домен example.com в качестве OpenID. Проблема в том, что я должен добавить тег на свою корневую страницу, но он должен перенаправить всех пользователей на подстраницу. Я могу изменить тип перенаправления и использования, например. метатег. Но есть ли лучший способ реализовать это и не нарушать мгновенное перенаправление HTTP?

Может быть, я могу как-то отличить запрос OpenID и только на этот раз ответить html?

ответ

3

Вы можете указать местоположение Yadis документа (который может быть статическим файлом в public/), установив заголовок X-XRDS-Location, или вы можете выбрать для обработки типа MIME application/xrds+xml в корневом каталоге приложения динамически.

  • См. Yadis wikipedia page для обзора того, что представляет собой документ Yadis и что вам нужно вернуть в документе XRDS.
  • Существует rubyonrails.org blog post о том, как обращаться с пользовательским типом MIME. Похоже, что это все еще, как это работает в Rails 3 (вам не нужен специальный рендерер).
+0

Я добавил ответчика XRDS, который вы можете увидеть на http://sema.in с заголовком 'Accept: application/xrds + xml' (я проверил с htty gem), но я не могу войдите в систему с этим openid на любом веб-сайте. Например. StackOverflow отвечает «Конечная точка OpenID не найдена». –

+0

Оказалось, что очень немногие сайты поддерживают этот вид openid. Я заменил перенаправление страницей. Стандартные теги openid ссылки работают повсюду. –

+0

Печально. :(OpenID - это гетто. – wuputah