更新:
我的项目有一个处理身份验证的 Web 应用程序,我们可以将其称为 Auth Web 应用程序,它将在域中的自己的服务器上运行
login.example.com
。该项目将有第二个 Web 应用程序,在 User Web App 中显示用户数据,并且它将在域中自己的服务器上运行 app.example.com
。
我可以使用 AWS Amplify Cognito 在 Auth Web 应用程序 中成功对用户进行身份验证,将 JWT 令牌保留在 cookie 中,并将用户重定向到 用户 Web 应用程序。
正如我的问题所述,我正在尝试找出如何注销用户。我想象流程如下,我被困在第 3 步。我陷入了这一步,因为我想象 Auth Web App 不知道谁刚刚被重定向到它。
Auth.signOut()
任何指导将不胜感激!
通常 JWT 的要点是您的身份验证部分生成具有有限(通常为 1 小时)有效性的 JWT,而其他应用程序只是验证它而不联系身份验证部分。
这意味着除了登录之外,身份验证部分不存在于逻辑的任何部分中,因此您无法在那里“注销”。
注销是通过删除客户端应用程序中的令牌来完成的。
如果应用程序具有任何类型的刷新令牌,则可以(并且应该)首先从身份验证部分中删除此类令牌,然后再将其从客户端应用程序中删除。要点是 - 如果您能够使用刷新令牌,您就能够对自己进行身份验证(和授权)。以同样的方式,您应该对自己进行身份验证,只是不生成新的 JWT 访问令牌,而是从身份验证部分删除刷新令牌。