繁体   English   中英

为什么 req.cookie.token_name 不起作用?

[英]Why is req.cookie.token_name not working?

我正在为网站构建身份验证,req.cookie 返回未定义。 我能知道这有什么问题吗?

这是我的服务器代码

我在这里导入了身份验证文件

app.get("/", auth, (req, res) => {
        res.render("index")
})

这是我的 auth.js 文件

const jwt = require("jsonwebtoken")
const Register = require("../models/registration")
const cookieParser = require("cookie-parser")
const express = require("express")

const app = express()

app.use(cookieParser())

const auth = async (req, res, next) => {
    try {
        const token = req.cookie.token_name
        console.log(token)
        const verifyUser = jwt.verify(token, process.env.SECRET_KEY)
        next()
    } catch (error) {
        console.log(error)
        res.status(401).send(error)
    }
}

module.exports = auth

如果需要,这也是我的登录代码,但是是的,我验证了它在浏览器上存储的 cookie

app.post("/login", async (req, res) => {
    try {
        const password = req.body.password
        const email = req.body.email
        
        const user = await Register.findOne({ email: email })
        
        const isMatch = await bcrypt.compare(password, user.password)
        
        const token = await user.generateAuthenticationToken()
        
        res.cookie('jwt', token, {
            maxAge: 600*1000,
            httpOnly: true,
        })
        
        if (isMatch) {
            res.redirect("/")
        } else {
            res.send("Invalid Credentials")
        }
    } catch (error) {
        res.status(404).send(error)
    }
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM