我不创建大型网站,所以我主要是 openid 的用户,它是各种实现。我在 SO 中使用 openid,我喜欢它,因为我将我的 gmail 帐户用于所有事情(我计划将来退出 gmail,但现在我将它用于所有事情),所以我不必记住另一个登录名/帐户。
所以,在我天真的用户心目中,我认为使用 openid 很简单:您有很多提供者,当用户尝试登录时,您的应用程序会询问他/她的提供者:“这个人能够登录吗?”,提供者返回“这个用户是有效的”有一些数据(有些可能会返回比其他更多的数据),或者如果登录不成功,则不返回任何内容。
我打算在未来的网站中使用 openid。在我看来,我想我会使用某种可以为我“抽象”的库:您的用户使用提供商登录,您的应用程序不知道每个提供商,并且该库从用户名返回一个唯一标识符提供者。例如:myemail@gmail.com 用于登录。它在库中有一个唯一的 id,在哈希计算或其他东西之后返回,你的应用程序将它用于所有事情。
在我的应用程序中,我会尝试只处理由 openid libm taht 创建的这个 id,它将处理 facebook、twitter、gmail 等。也许这个库有一个带有提供者名称的表,当一个人第一次登录你的网站时,你在数据库中有一行说“这个唯一的 id 来自 twitter”。从理论上讲,这似乎在我的脑海中起作用。
...但是在阅读Openid is a Nightmare之后,我开始思考是否真的是一个好主意,即使尝试找到这样一个可以完美运行的库。
由于每个人(openid 提供者)现在都有自己的登录机制,而不是只担心一个系统(我自己的,我要创建自己的登录机制)——现在我不得不担心几十个系统——openid 应该解决正是这样。现在,我需要一个巨大的库来抽象这整个混乱。
像我描述的那样的图书馆是否存在?如果是这样,是否有可能创建一个至少尝试表现得像一个真正的“openid”梦想的应用程序?
(我知道 openid 与 facebook auth 等不同......但从最终用户的角度来看,它是相同的恕我直言,“跨网站使用相同的登录”。即使协议不是,我也想抽象登录过程t 只是为了那个。对于很多服务,你只需要知道某人是否是她声称的那个人。)