【问题标题】:Multiple OAuth2 access tokens for single application?单个应用程序的多个 OAuth2 访问令牌?
【发布时间】:2013-04-11 04:46:48
【问题描述】:

也许有人可以澄清我,因为我发现文档中没有明确写...

我确实有一个应用程序,它在多台机器上运行。使用 OAuth2,我必须获得访问令牌才能使用 Google API。我是否需要在我的所有主机上使用 single 访问令牌并注意它会在它们之间同步(这会增加复杂性级别,因为一旦令牌过期 - 它必须被刷新并再次分发给所有主机主机),或者每个主机都有可能获得自己的令牌并在本地缓存它?

我不确定第二个选项是否安全(尽管它更容易实现),因为文档写道,令牌一旦刷新就会变得无效。会不会发生这样的情况,当一个主机创建其“自己的”令牌时,所有其他令牌(来自其他主机)都会自动失效?

【问题讨论】:

    标签: oauth oauth-2.0 google-oauth


    【解决方案1】:

    我假设您的应用程序是部署在集群中的 Web 应用程序,对吗?

    是否有会话状态分布在集群中?如果是这样,请将访问令牌添加到会话中。

    理论上您可以拥有多个访问令牌,但不要依赖于此。您可能会遇到速率限制,但如果只是偶尔一台机器获得多个访问令牌,这不是问题。

    【讨论】:

      【解决方案2】:

      由于是一个应用程序,一个访问令牌是首选方法。如果您有多个访问令牌,则需要将每台机器视为单独的应用程序,最终用户需要分别授权每台机器。

      为了避免级联刷新(机器一获得过期响应并进行刷新,然后机器二在机器一获取新访问令牌之前执行相同的操作),您将需要一些同步逻辑,无论您存储令牌。数据存储中的一个简单状态标志(使用现有令牌,获取新令牌)可以帮助同步。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-07
        • 2016-10-13
        • 2020-04-05
        • 1970-01-01
        • 2017-04-29
        • 1970-01-01
        相关资源
        最近更新 更多