将REST令牌存储在Cookie中

问题描述 投票:0回答:1

现在我有两个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

node.js rest express cookies ejs
1个回答
0
投票

请确保您正在使用cookie-parser中间件:

const cookieParser = require('cookie-parser');

app.use(cookieParser());
© www.soinside.com 2019 - 2024. All rights reserved.