【发布时间】:2010-11-10 17:53:13
【问题描述】:
谁能帮助我了解 OpenID 的工作原理?我对以下答案感兴趣:
- 如果使用 OpenId,您还需要存储用户 ID 和密码吗?
- 当用户登录时,我的应用程序如何创建新会话?
- 当用户从应用程序中注销时,除了清除他们的会话数据之外,我还需要执行其他操作吗?我需要通知 openId 服务器吗?
【问题讨论】:
标签: openid
谁能帮助我了解 OpenID 的工作原理?我对以下答案感兴趣:
【问题讨论】:
标签: openid
我最近做了一个 openid 身份验证系统,它是这样工作的。
登录:
验证请求:
有一个表将 openid url 映射到用户。
对于每个请求:
您是否还需要存储用户 ID 和 如果使用 openId 密码?
userIDs 是,passwords 否(除非您提供除 openid 之外的其他登录方式)
我的应用程序如何发现和 当有人登录时创建一个新会话 在?
会话按正常方式处理,会话用于经过身份验证和未经身份验证的用户。
当我使用自己的日志时 申请,我需要做什么吗 不仅仅是清除他们的会话 从我的应用程序? (我需要 通知openId服务器?)
没有。
【讨论】:
我的理解如下:
OpenId 允许用户以分散的方式登录。这意味着用户的登录凭据由一个站点(提供商)处理
您的系统将与提供者交互以确定用户是否是他们所说的那个人。如果他们通过了检查,您的系统会将他们登录。
您仍然需要存储一些用户信息,因为他们如何使用您的系统的详细信息必须存储在您的系统中。
因此,如果 Google 是一个开放 ID 提供者,那么 SO 可以验证我是否登录了 google 并且我是我所说的那个人。 SO 然后说,太好了,这个用户是我们系统中的 hvgotcodes,并给了我对我在 SO 中的身份有意义的特权。
在回答您有关注销的具体问题时,是的,在开放 ID 提供程序验证用户凭据后,您仍将用户登录到您的系统,因此您可以从自己的系统处理他们的注销状态。
【讨论】: