繁体   English   中英

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

[英]How to avoid getting multiple cookies when login using Cognito

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

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

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

这就是我在注销时重置 cookie 的方式。 这在它只创建一个访问 cookie 时有效。 我认为这应该在 cognito 方面处理。 有人可以帮助我避免在登录应用程序时收到两个 cookies 吗?

您使用的是什么 OAuth 流配置? 授权码授予还是隐式授予? 如果您正在使用授权代码授予并且您的后端回调正在交换令牌的授权代码,那么如果您启用了 openid OAuth scope,您应该取回访问令牌、刷新令牌和 ID 令牌。 是您的应用程序设置了 cookies 吗? 因为在使用Authorization code grant的时候,Cognito只给我设置了两个cookies。 一个名为 cognito,另一个名为 XSRF-TOKEN。 但在我的情况下,我使用 Cognito 令牌的应用程序确实设置了我们自己的 cookies 来存储令牌。 在您的例子中,是谁创建了名为 SessionCookie-0 的 cookie? 我认为提供有关您的设置的更多详细信息会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM