每次如何避免OAuth跳舞?

时间:2016-07-09 22:35:15

标签: oauth flask single-sign-on jawbone

有没有办法将OAuth用作Jawbone的单点登录流程?

目前我被迫"同意"每当我尝试连接到我的网站/应用程序并获得access_token时,应用程序权限。

如果是,请如何实施?

当您使用&#34时,我期待像airbnb.com这样的行为;使用Facebook / Google登录"

或者它是技术颚骨设计的选择吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

我不确定,但文档并没有真正表明API是针对您尝试做的。我不认为它是用于SSO设计的(从用户的角度来看)。

答案 1 :(得分:0)

从技术上讲,您可以将UP OAuth流用于SSO,而您的方式也可以解决您不必每次都执行OAuth握手的首要问题。

以下是您需要做的事情:

  1. 当用户需要登录时,使用normal OAuth pattern:重定向登录,回调服务器,交换代码以获取访问令牌。
  2. 现在您拥有访问令牌,您需要保存它和用户的XID。您可以从任何endpoint获取XID。
  3. 在您的应用程序中,维护此用户与已保存的XID /访问令牌之间的连接。这可以是数据库行,cookie,本地存储等。
    1. 使用#3中的连接,在需要时提取用户的XID /访问令牌,这样您就不必重做OAuth握手。
  4. 之后,您将做出一些架构决策:

    • 您将如何存储用户的信息(上面#3中的一些建议选项)?
    • 当用户离开您的应用程序时,您是否会将用户注销?
    • 如果用户已注销,您是否会再次执行OAuth或使用其他方法将返回的用户链接到现有的XID /访问令牌?
    • 当访问令牌过期(1年后)时,您是否会使用刷新令牌自动刷新,或者您是否让用户再次执行OAuth?