Я не создаю большие сайты, поэтому я в основном являюсь пользователем openid и его различными реализациями. Я использую openid здесь в SO, и мне это нравится, потому что я использую свою учетную запись gmail для всего (я планирую выйти из gmail в будущем, но теперь я использую ее для всего), поэтому мне не нужно помнить другой логин/учетная запись.
Итак, в моем наивном сознании пользователя, я думаю, что использование openid simple: у вас много провайдеров, когда пользователь пытается войти в систему, ваше приложение спрашивает у своего провайдера: "это кто может войти?", поставщик возвращает "этот пользователь действителен" с некоторыми данными (некоторые могут возвращать больше данных, чем другие) или просто ничего не возвращают, если он, например, был неудачным логином.
Я планировал использовать openid на будущем веб-сайте. На мой взгляд, я думаю, что я бы использовал какую-то библиотеку, которая могла бы "абстрагировать" это для меня: ваш пользователь входит в систему с провайдерами, ваше приложение не знает каждого, и эта библиотека возвращает уникальный идентификатор из имени пользователя из поставщик. Например: [email protected] используется для входа в систему. Он имеет уникальный идентификатор в lib, возвращенный после вычисления хэша или что-то еще, и ваше приложение использует это для всего.
В моем приложении я попытался бы использовать только этот идентификатор, созданный openid libm taht, который обрабатывал бы facebook, twitter, gmail и т.д. Возможно, в этой библиотеке есть таблица с именем поставщика, и когда человек сначала войдет в систему на вашем сайте, у вас есть строка в базе данных, в которой говорится, что "этот уникальный идентификатор из twitter". Теоретически это, похоже, работает в моем сознании.
... но после прочтения Openid - это кошмар, я начинаю думать, действительно ли это была бы хорошая идея, даже пытаясь найти такой lib, который будет работать так прекрасно.
Поскольку у всех (поставщики openid) теперь есть собственный механизм входа, вместо того, чтобы беспокоиться только о одной системе (мой собственный, я должен был создать свой собственный механизм входа) - теперь мне нужно беспокоиться о десятках систем - и openid был Предполагается, что это именно так. Теперь мне нужна огромная библиотека, которую я предвижу, чтобы отвлечь весь этот беспорядок.
Существует ли библиотека, подобная той, которую я описал? Если да, возможно ли создать приложение, которое, по крайней мере, пытается вести себя как действительно "открытый" сон?
(Я знаю, что openid - это не то же самое, что и в facebook auth и т.д.... но с точки зрения конечного пользователя, это же IMHO, "используйте один и тот же логин на сайтах". Я хочу абстрагировать процесс входа в систему, протокол не был сделан именно для этого. Для множества услуг вам просто нужно знать, является ли кто-то, кем она себя заявляет.)