如何避免在使用Cognito登录时获得多个cookie



我们正在使用AWS Cognito进行身份验证。该项目包含一个API服务器和一个web服务器。在客户端,用户通过AsureAD登录到应用程序,cognito实例返回JWT访问令牌。当用户从应用程序注销时,我们会删除cookie并从cognito注销。

我的问题是,当用户登录到应用程序时,我们只需要创建一个访问令牌。但它有两个。。

async logout(req, res, next) {
try {
res.header('set-cookie', `SessionCookie-0=; Path=/;`); 
} catch (error) {
next(appendExceptionStack(error));
}
}

这就是我在注销时重置cookie的方式。当它只创建一个访问cookie时,这就起作用了。我认为这件事应该放在一边处理。有人能帮我避免在登录应用程序时收到两个cookie吗。

您正在使用什么OAuth Flow配置?授权码授权还是隐式授权?如果您正在使用授权代码授予,并且后端回调正在为令牌交换授权代码,那么如果您启用了openid OAuth作用域,则应该返回访问令牌、刷新令牌和id令牌。是你的应用程序在设置cookie吗?因为在使用授权码grant时,Cognito只为我设置了两个cookie。一个名为Cognito,另一个名称为XSRF-TOKEN。但在我的情况下,我的应用程序消耗Cognito代币,并设置了我们自己的cookie来存储代币。在您的情况下,谁正在创建名为SessionCookie-0的cookie?我认为提供更多有关设置的详细信息会有所帮助。

最新更新