Фрагмент URL в Openid - что это значит?

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

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

Что мне кажется странным, так это фрагмент после хэш-тега #,

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

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

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

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

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

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

1 ответ

Решение

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

УТИЛИЗАЦИЯ ИДЕНТИФИКАТОРА

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

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

Другие вопросы по тегам