使用单独服务器上的Express Sessions和Axios保存cookie以便重复使用的问题

时间:2018-06-01 17:10:04

标签: node.js express axios

让我先说一下我是Express和Node.js的新手。

我正在使用" express-session"和" connect-mongo"将会话数据存储在服务器上以供重用。

服务器正在保存会话,但是当我尝试使用我保存的会话时浏览器不是这样,它是未定义的。

我已经尝试了所有可以在互联网上找到的解决方案而没有取得真正的成功。没有错误,但会话cookie未显示在浏览器中。这些服务器通过Mac上的localhost端口进行处理。

我正在使用vue.js,如果这有帮助,页面不会重定向这些请求。

这是我的前端请求。

axios("http://localhost:8081/user/login", {
    method: "post",
    data: someJsonData,
    withCredentials: true
})

以下是我在节点服务器上的cors设置:

app.use(cors({
    origin:['http://localhost:8082'],
    methods:['GET','POST','PUT'],
    credentials: true // enable set cookie
}));

以下是我的会话设置(我尝试了很多配置):

app.use(session({
  secret: 'Auto is a function',
  resave: false,
  secure: false,
  saveUninitialized: false,
  cookie: { secure: false },
  store: new MongoStore({
    mongooseConnection: db
  })
}))

以下是会话的使用方式:

//Create the session and find that it saved in Mongo with the correct userId
        app.post('/user/login', (req, res, next) => {
           //etc..
           req.session.userId = user._id;
           req.session.save();
        })

// I attempt to use it but it's undefined as it was not created in the browser
        app.post('/team/add', (req, res, next) => {
          let name = req.body.name;
          let id = req.session.userId;
          let role = req.body.role;

          //etc..
)}

任何见解都将受到赞赏。

谢谢, 泰勒

0 个答案:

没有答案