现在我有两个RESTApis正在运行。一个是前端,运行在端口3001上,第二个是服务器端,运行在端口3000上。我需要帮助将令牌存储在cookie中。
这是login.ejs中的代码
function login() {
const userName = document.getElementById('userName').value
const password = document.getElementById('password').value
const url = 'http://10.0.0.187:3000/users/login/'
if (!userName || !password) {
alertBanner.innerHTML = '<div class="alert alert-danger" role="alert">Please Provide a username and password</div>'
} else {
axios.post(url, {
userName: userName,
password: password
}).then((res) => {
if (res.status === 200) {
window.location("/blog")
}
}).catch((err) => {
alertBanner.innerHTML = '<div class="alert alert-danger" role="alert">Invailed Credentails</div>'
})
}
}
并且在服务器端创建令牌后,将其与此存储在一起:
res.cookie('token', token, { httpOnly: true, secure: true })
return res.send('')
但是它不存储令牌,因为如果我创建另一个路由,请说/users/verifyToken
并尝试将Cookie与console.log(req.cookies.token)
一起使用返回undefined
请确保您正在使用cookie-parser中间件:
const cookieParser = require('cookie-parser');
app.use(cookieParser());