作为对 OpenID/OpenAuth 的一些研究的一部分,我刚刚(重新)阅读了 Rob Conery 的 2010 年博客文章OpenID is a Nightmare 。理想情况下,我希望使用链接到单个帐户的多个 OAuth 提供程序,以提供对提供程序不可用的弹性 - 使用 Facebook 登录,链接您的 Twitter 和 Google 帐户,如果您下次访问 Facebook 登录不起作用没关系,您可以使用 Twitter 或 Google 进入并访问您的资料 - 就像在现实世界中,您可以使用护照开一个银行账户,如果您的护照没有,您可以稍后使用您的驾驶执照取款可用的。
Rob 在他的文章中主要担心的一个问题是,无法始终如一地识别正在使用 OpenID 的用户 - 有人可能有一天登录 Google,购买产品,然后几天后回来登录 Google,但无法访问他们购买的产品,因为没有唯一标识符可以保证在两次 Google 身份验证调用之间保持一致。
我很好奇 OAuth 2.0 中是否已经解决了这个问题——要么通过协议规范明确解决,要么通过主要提供商之间的一些实现共识。我可以依靠哪个字段(如果有)在用户与特定 OAuth 提供者的关系的整个生命周期内不进行更改?