Фрагмент URL в Openid - что это значит? - PullRequest
1 голос
/ 23 июля 2011

Если я использую свой Yahoo-аккаунт в качестве Openid-провайдера, он возвращает этот URL как мою личность:

https://me.yahoo.com/a/9dodtB5.udVP6zRSRfAxIzPO6XXVdbqlS4jp#85bb1

То, что я считаю странным, это фрагмент после хеш-тега #.

Эти фрагменты по стандарту HTTP не передаются на сервер при запросе ресурса.Единственный способ, которым я знаю о доступе к ним, - в браузере клиентов с помощью JavaScript.

Так как это может быть частью Openid Identity или нет?

Так что, если я включу свой веб-сайтпринять Openid Я получаю удостоверение, которое храню в базе данных и запрашиваю точные совпадения, если пользователь хочет войти / зарегистрироваться.

Должен ли я сохранить фрагмент или нет?

Я думаю, это не повредит, потому что все Openid-библиотеки, которые я видел до сих пор, хранят идентичность «как есть» (с фрагментом).

Но разве это не какое-то нарушение или стандарт?Я не уверен.

1 Ответ

0 голосов
/ 23 июля 2011

Я не знал о дополнении к Стандарту в Openid 2.0, в котором говорится следующее:

ПЕРЕРАБОТКА ИДЕНТИФИКАТОРА

Идентификаторы OpenID могут со временем перерабатываться, а OpenID 2.0указывает, что провайдеры OpenID добавляют фрагменты URL в конец URL OpenID в качестве идентификатора генерации.Весь URL OpenID с фрагментом, если он присутствует, должен использоваться для идентификации пользователя.Например, следующие два OpenID являются уникальными и представляют разных пользователей: http://openid.example.com/username#aa http://openid.example.com/username#bb

Так что, в конце концов, это действительно имеет смысл, потому что сама идентичность действительно не меняется.Это означает, что если я запрашиваю openid, фрагмент будет удален, и я всегда запрашиваю один и тот же ресурс с тем же документом XRDS позади.

...