我一直在研究oauth2已经有一段时间没有找到完美的解决方案,想看看其他人之前是否做过这个。目前我在一个代码库中有两个应用程序。这些应用程序唯一共享的是身份验证。我要做的是为oauth2服务器创建第三个应用程序。然后我想将现有的应用程序分成两个应用程序。试着了解谷歌如何处理他们的oauth东西。因此域名就是这样的。
我在这两篇关于门卫和设计的帖子中找到了一些很好的信息。目前我正在使用设计,以便使这部分更容易。
因此,这些应用程序app1和app2中的每一个都将具有需要对其进行身份验证的API。
所以我有以下问题。
如果app1需要验证帐户子域是否意味着从API的角度来看,我需要在每个请求上调用oauth2服务器应用程序?这似乎是很多开销。这是谷歌做的方式,还是他们有一些技巧?
app1和app2会对自己的会话超时负责吗?如果app1会话有效但用户通过转到auth2服务器应用程序直接删除了他们的帐户会发生什么?
如果app1和app2负责会话,那么他们是否还想回拨帐户oauth2服务器以验证用户是否仍然存在?
我试图将所有这一切都排除在外,并且找不到当oauth客户实际上是API以及它们也是网络应用时如何工作的一个很好的例子。也许我也在考虑它,并且为每个API请求进行额外调用就是这样。
非常感谢任何有关此的帮助或教程。
答案 0 :(得分:0)
The OAuth 2.0 Authorization Framework提供了五种授权方法:
我相信我们正在讨论Client credentials grant
(我认为谷歌一般会使用它)。
步骤[E]
中的here:
重复步骤(C)和(D)直到访问令牌到期。如果 客户端知道访问令牌已过期,它跳到步骤(G); 否则,它会发出另一个受保护的资源请求。
这意味着它实际上没有在每个请求上点击Authorization Server
。它仅在client
发现令牌过期时才会命中授权服务器。所以,如果我们删除自己,它会使令牌过期!
也许这些文件可以为您提供更多帮助: