【问题标题】:Gadget OAuth2 from OpenID Authentication来自 OpenID 身份验证的小工具 OAuth2
【发布时间】:2014-03-21 18:34:55
【问题描述】:

我正在将我的应用程序更新为 OAuth2,并且有几个问题。

电子邮件地址是我们应用程序中的用户 ID。

  • 正如在我们的应用程序中 openid 与用户 ID 关联的旧文档中所解释的那样,我们显示了一个将 open_social_id 存储在数据库中并创建临时会话密钥的弹出窗口。成功关联用户后,我们将 open_social_id 添加到用户 ID 旁边,查看临时会话密钥。这曾经/正在正常工作。 https://developers.google.com/google-apps/marketplace/best_practices#gadget_sso

但是使用 oauth2,由于我们获得了电子邮件地址(来自当前登录用户的联系人范围),我想弄清楚如何在我的服务器上对此进行身份验证?我是否应该将电子邮件地址与 open_social_id 一起使用,并在以后每次都依赖 open_social_id ?这是正确的方法吗?

或者我应该在我的服务器上添加 OAuth2 代理以允许在正确的范围内进行访问。

谢谢。

【问题讨论】:

    标签: google-app-engine google-oauth google-openid google-apps-marketplace


    【解决方案1】:

    你不必改变太多。

    在旧设置中,您显示了一个弹出窗口,它通过 openId 获取用户的身份和电子邮件地址。

    在新设置中,您会显示一个弹出窗口,该窗口会执行 OAUTH2 舞蹈以获取用户的身份和电子邮件地址。

    因为范围是预先授权的,最终用户将看不到同意屏幕,从最终用户的角度来看,没有什么真正改变。

    【讨论】:

    • 是以下意思吗?签署发送 open_social_id 的请求。将其存储在后端并创建一个 session_key。用户通过使用 OAuth2 的弹出窗口(session_key 作为参数)表示同意。身份验证完成后,根据 session_key 将用户映射到 open_social_id。用户然后发送 open_social_id 并且服务器查找。
    • 不同的相关问题。在 OAuth2 跳舞之后,有没有办法将参数自动发送回小工具?这将消除与 open_social_id 相关的 session_key。用户将进行 oauth 身份验证,我们会自动存储电子邮件地址。 window.parent 没有工作,因为它是跨域的。有什么想法或者 open_social_id+Session+popup+Associating-open_social-with-contact 是正确的方式吗?
    • 打开弹出窗口并传递 open_social_id。验证后,您在弹出窗口中同时拥有 open_social_id 和电子邮件地址,并将两者都发送到服务器。存储此相关性。从那时起,来自带有 opensocialid 的小工具的任何请求都可以链接回电子邮件地址。无需使用会话密钥使事情复杂化。
    • 我如何传递 open_social_id,因为它只有在签名时才知道?服务器是否应该在响应中将它的 open_Social_id 发回。谢谢。
    • 当小工具启动时,对服务器执行 io.makeRequest 调用以查看您是否知道身份。如果你这样做,一切都很好。如果不这样做,请返回 open_social_id 并启动弹出窗口。
    猜你喜欢
    • 2011-03-24
    • 1970-01-01
    • 2020-04-06
    • 1970-01-01
    • 2018-01-01
    • 2015-12-22
    • 2018-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多