Javascript 值显示为已保存到Express会话,但在后续路由中不可访问
我在将数据保存到Express会话中间件时遇到问题。我正在使用Vue.js前端与运行在Javascript 值显示为已保存到Express会话,但在后续路由中不可访问,javascript,node.js,vue.js,express,express-session,Javascript,Node.js,Vue.js,Express,Express Session,我在将数据保存到Express会话中间件时遇到问题。我正在使用Vue.js前端与运行在localhost:8080上的服务器通信。服务器在localhost:3002上运行 我怀疑Vue应用程序和服务器之间的交互可能是问题的根源,因为我尝试过使用裸骨Express应用程序进行测试,该应用程序将HTML作为简单的模板文本,并且req.session.save()工作正常 这是我的密码 vue.config.js module.exports = { "transpileDepende
localhost:8080
上的服务器通信。服务器在localhost:3002
上运行
我怀疑Vue应用程序和服务器之间的交互可能是问题的根源,因为我尝试过使用裸骨Express应用程序进行测试,该应用程序将HTML作为简单的模板文本,并且req.session.save()
工作正常
这是我的密码
vue.config.js
module.exports = {
"transpileDependencies": [
"vuetify"
],
devServer: {
"https": true
}
}
js(Express服务器)
将数据设置到会话的登录路径
app.post('/api/login', async (req, res) => {
...
request(options, function (error, response) {
if (error) throw new Error(error)
let fm_res = JSON.parse(response.body)
req.session.FM_TOKEN = fm_res.response.token
req.session.save()
console.log('TOKEN STORED IN SESSION :: ', req.session) // token present in session here
res.json({message: 'Token saved in session...', status: 200})
});
});
不可访问令牌的单独路由
// CHECK AUTH
app.post('/api/token_auth', async (req, res) => {
let authToken = req.session.FM_TOKEN
console.log('TOKEN FROM SESSION : ', authToken) // undefined
....
});
我已经研究并尝试了这里提出的各种解决方案,但我从任何答案中都没有发现任何有效的方法。有人能给我指出解决这个问题的正确方向吗?因为我没有主意了。提前谢谢
更新
我已经使用Postman测试了上述端点,它们可以工作,即/api/token\u auth
可以访问会话中保存的令牌。因此,问题似乎与我的前端没有使用https
而是使用http
进行这些调用有关
我已尝试按照中的建议在session.cookie
中使用httpOnly:false
设置,但仍然不起作用。我没有主意了
有人知道如何规避
https
要求以进行开发吗?碰巧,在app.use(session(sess))之前插入app.post('/api/token_auth')?@cassiolacerda No.所有路由都在app.use(session(sess))之后声明。谢谢你的回复!
// CHECK AUTH
app.post('/api/token_auth', async (req, res) => {
let authToken = req.session.FM_TOKEN
console.log('TOKEN FROM SESSION : ', authToken) // undefined
....
});