小编gdd*_*ddh的帖子

未设置 Cookie,即使它位于响应标头中。使用快速会话 cookie

问题:

尝试使用 登录时设置 cookie express-session,但我认为我遗漏了一些明显的东西。对登录 POST 请求的响应包括 Set-Cookie。我还将Access-Control-Allow-Origin和设置Access-Control-Allow-Headers为通配符,如下所示: https: //i.stack.imgur.com/XS0Zv.png

但我们看到浏览器存储中(用 Firefox 和 Chrome 尝试过)什么也没有。如图所示

我目前正在将我的快速会话设置如下(请参阅帖子末尾以获取完整代码。添加代码片段以便于阅读):

app.use(session({
        genid: () => { return uuidv4(); },
        store: new MongoStore({ mongooseConnection: mongoose.connection }),
        secret: process.env.SESSION_SECRET,
        resave: false,
        saveUninitialized: true,
        cookie: {
          httpOnly: true,
          secure: false,
          sameSite: true,
        }
      })
    );
Run Code Online (Sandbox Code Playgroud)

然后,在验证用户已登录后,我尝试通过以下方式设置 userId:

req.session.userId = user.id;
Run Code Online (Sandbox Code Playgroud)

可能相关的信息

  • 正如您在此处看到的那样,这些会话已成功存储在 Mongo 中,这使我相信我至少正确生成了会话。现在我可能完全错了......
  • 我的后端正在localhost:8000通过以下方式运行:app.listen(8000);
  • 我的客户端正在运行http://localhost:3000/
  • 尽量不要将 Apollo GraphQL 用于学习目的

到目前为止我尝试过的事情:

  • 的不同组合resavesaveUnitialized.
  • 删除该 …

cookies node.js express express-session express-graphql

4
推荐指数
1
解决办法
5155
查看次数