2

我在我的项目中设置了 Django OAuth Toolkit,其中授权服务器与应用程序服务器(即 accounts.example.com 和 app.example.com)是分开的。应用服务器使用授权流重定向到账户服务器;用户输入凭据以登录身份验证服务器,然后身份验证服务器将用户重定向回应用程序;以便应用程序可以检索令牌。

上述流程目前按预期工作。如果我没有明确单击注销用户并且应用程序注销(例如会话过期或浏览器 cookie 被清除),则将再次执行上述流程并且不需要凭据,因为身份验证服务器仍然知道谁是签了。

但是,我无法明确地将用户从应用程序中注销。如果用户显式单击登录,首先必须撤销令牌,其次必须注销身份验证服务器。实现这一目标的正确方法是什么?就我而言,我将无法使用 Ajax 注销用户,因为会话必须在身份验证服务器中销毁。

所以,我一直在考虑将用户重定向到accounts.example.com/signout?token=${accessToken}&client_id=${clientID}. 但是,我不确定这是否是正确的方法。这就是这些注销请求与 OAuth 一起使用的方式吗?这是否意味着当我从系统注销时,我需要始终提供访问令牌和客户端 ID?

4

0 回答 0