Ответ 1
OpenID - это URI, поэтому вы ограничены максимальной длиной URI. Насколько я знаю, ограничений нет, но некоторые браузеры (например, Internet Explorer) имеют предел.
Дальнейшее чтение:
Я планирую добавить поддержку openid для создаваемого веб-приложения. Я не могу найти максимальную длину действительного openid, поэтому я могу сохранить его в своей базе данных. Я видел некоторые неопределенные ссылки на 255, но я предпочел бы быть уверен.
Кроме того, полезно ли использовать openid как имя пользователя (рекомендации)?
OpenID - это URI, поэтому вы ограничены максимальной длиной URI. Насколько я знаю, ограничений нет, но некоторые браузеры (например, Internet Explorer) имеют предел.
Дальнейшее чтение:
В соответствии с спецификацией OpenId 1.1 максимальный предел для URL-адреса идентификатора составляет 255 байт. См. OpenId 1.1 Приложение D: Ограничения. Identity Provider и return_to Urls могут быть до 2047 макс. Байтов.
Обратите внимание, что этот раздел о лимитах был удален из спецификации OpenId 2.0. Так что непонятно, какая максимальная длина сейчас.
Я бы не использовал OpenID напрямую в качестве имени пользователя. Просто посмотрите URL-адреса OpenID, которые Yahoo предоставляет пользователям, они непонятны. Разрешить пользователям выбирать свое собственное имя пользователя и в идеале допускать, чтобы несколько URL-адресов OpenID связывались с одной учетной записью пользователя (например, переполнение стека).
В версии 2.0 спецификации нет официальной длины.
Вы можете хэшировать URL-адрес, предоставленный во что-то уникальное (md5 или какой-либо другой повторяемый хеш), и сохранить это в своей БД как более короткую строку.
Что касается использования его как имени пользователя, большой URL-адрес не очень хорош. Вы можете извлечь имя пользователя из ответов (SO получил мое имя пользователя непосредственно из моего OpenID)
Вы не должны соглашаться с любым URL-адресом OpenID, длина которого превышает 255. Хотя это возможно, многие могут использовать это как вектор атаки, чтобы снимать такие вещи, как SQL Injection. Взгляните на API OWASP AntiSAMY в качестве дополнительной защиты.