Фрагмент 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.