Я только что (пере)читал запись в блоге Роба Конери 2010 года OpenID — это кошмар в рамках исследования OpenID/OpenAuth. В идеале я хочу использовать несколько провайдеров OAuth, связанных с одной учетной записью, чтобы обеспечить устойчивость к недоступным провайдерам — войдите в систему с помощью Facebook, свяжите свои учетные записи Twitter и Google, и если в следующий раз вы посетите Facebook, вход в систему не работает. не имеет значения, вы можете использовать Twitter ИЛИ Google, чтобы войти и получить доступ к своим материалам — точно так же, как в реальном мире вы можете открыть банковский счет с паспортом и снять деньги позже, используя свои водительские права, если ваш паспорт не доступный.
Одна из главных проблем Роба в его статье заключается в том, что невозможно последовательно идентифицировать пользователя, использующего OpenID — кто-то может войти в систему с помощью Google, купить продукт, а затем вернуться и войти в систему с помощью Google через несколько дней и не сможет для доступа к продукту, который они купили, потому что нет уникального идентификатора, который гарантированно останется согласованным между двумя вызовами аутентификации Google.
Мне любопытно, было ли это решено в OAuth 2.0 - либо явно через спецификацию протокола, либо через какой-то консенсус по реализации среди основных поставщиков. На какое поле (если оно есть) я могу положиться, чтобы оно не менялось в течение всего срока действия отношений пользователя с конкретным провайдером OAuth?