单个应用程序多个OAuth2访问令牌?

6
也许有人可以为我澄清一下,因为文档中没有写得很清楚...
我有一个应用程序,在多台机器上运行。使用OAuth2需要获得访问令牌才能使用Google API。我是否需要在所有主机上使用单个访问令牌,并确保它在它们之间同步(这增加了复杂性级别,因为一旦令牌过期-必须刷新并再次分发到所有主机),或者每个主机都可以获得自己的令牌并将其缓存到本地?
我也不确定第二个选项是否安全(虽然更容易实现),因为文档写道,一旦令牌被刷新,令牌可能会失效。是否可能在一个主机创建“自己”的令牌时,所有其他主机的令牌(来自其他主机)都会自动失效?
2个回答

5

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

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

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


2

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接