有人能帮我理解OpenID是如何工作的吗?我对以下问题感兴趣:
- 如果使用OpenID,是否仍需要存储用户ID和密码?
- 当用户登录时,我的应用程序如何创建新会话?
- 当用户从应用程序注销时,除了清除其会话数据外,我需要做其他事情吗?我需要通知OpenID服务器吗?
有人能帮我理解OpenID是如何工作的吗?我对以下问题感兴趣:
OpenId允许用户以分散的方式登录。这意味着用户的登录凭据由一个站点(即提供者)处理。
您的系统将与提供者交互,以确定用户是否是他们所说的人。如果他们通过了检查,您的系统将登录他们。
您仍然需要存储一些用户信息,因为他们如何使用您的系统的详细信息必须存储在您的系统中。
因此,如果Google是一个OpenId提供者,SO可以验证我是否已登录Google并且我是我所说的人。然后,SO会说:“太棒了,这个用户是我们系统中的hvgotcodes,并为我在SO中的身份授予合适的权限。”
回答您关于注销的具体问题,是的,在OpenId提供程序验证用户凭据后,您仍然要将用户登录到您的系统中,因此您可以从自己的系统中处理他们的注销状态。
我最近制作了一个OpenID身份验证系统,以下是它的工作原理。
登录:
认证请求:
有一个将OpenID URL映射到用户的表格。
对于每个请求:
如果使用OpenID,我是否仍然需要存储用户ID和密码?
需要存储用户ID,但无需存储密码(除非您提供除OpenID之外的其他登录方式)。
当有人登录时,我的应用程序如何找出并创建新会话?
会话与普通会话相同,适用于已验证和未经验证的用户。
当我使用自己的应用程序退出登录时,我需要做些什么,除了清除他们在我的应用程序中的会话?(我需要通知OpenID服务器吗?)
不需要。