【问题标题】:How does OpenID work?OpenID 是如何工作的?
【发布时间】:2010-11-10 17:53:13
【问题描述】:

谁能帮助我了解 OpenID 的工作原理?我对以下答案感兴趣:

  1. 如果使用 OpenId,您还需要存储用户 ID 和密码吗?
  2. 当用户登录时,我的应用程序如何创建新会话?
  3. 当用户从应用程序中注销时,除了清除他们的会话数据之外,我还需要执行其他操作吗?我需要通知 openId 服务器吗?

【问题讨论】:

    标签: openid


    【解决方案1】:

    我最近做了一个 openid 身份验证系统,它是这样工作的。

    登录:

    1. 用户输入 openid url(不是 一定是独一无二的),
    2. Openid 提供者验证并 提供一个唯一的 openid url, 成功。
    3. 将此网址放入会话中。

    验证请求:

    有一个表将 openid url 映射到用户。

    对于每个请求:

    1. 在会话中查找 openid url
    2. 如果存在,查找用户记录并 将其附加到请求中
    3. 处理请求。

    您是否还需要存储用户 ID 和 如果使用 openId 密码?

    userIDs 是,passwords 否(除非您提供除 openid 之外的其他登录方式)

    我的应用程序如何发现和 当有人登录时创建一个新会话 在?

    会话按正常方式处理,会话用于经过身份验证和未经身份验证的用户。

    当我使用自己的日志时 申请,我需要做什么吗 不仅仅是清除他们的会话 从我的应用程序? (我需要 通知openId服务器?)

    没有。

    【讨论】:

      【解决方案2】:

      我的理解如下:

      1. OpenId 允许用户以分散的方式登录。这意味着用户的登录凭据由一个站点(提供商)处理

      2. 您的系统将与提供者交互以确定用户是否是他们所说的那个人。如果他们通过了检查,您的系统会将他们登录。

      3. 您仍然需要存储一些用户信息,因为他们如何使用您的系统的详细信息必须存储在您的系统中。

      因此,如果 Google 是一个开放 ID 提供者,那么 SO 可以验证我是否登录了 google 并且我是我所说的那个人。 SO 然后说,太好了,这个用户是我们系统中的 hvgotcodes,并给了我对我在 SO 中的身份有意义的特权。

      在回答您有关注销的具体问题时,是的,在开放 ID 提供程序验证用户凭据后,您仍将用户登录到您的系统,因此您可以从自己的系统处理他们的注销状态。

      【讨论】:

        猜你喜欢
        • 2017-05-23
        • 1970-01-01
        • 1970-01-01
        • 2012-11-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多