Node.js req cookies未定义的express
我不明白为什么req cookies在expressJS中总是未定义。这是我的密码:Node.js req cookies未定义的express,node.js,express,cookies,jwt,Node.js,Express,Cookies,Jwt,我不明白为什么req cookies在expressJS中总是未定义。这是我的密码: const accessToken = jwt.sign({id:user._id}, process.env.JWT_TOKEN_SECRET) console.log(accessToken) res.cookie('authcookie',accessToken) console.log(req.cookies.authcookie) 以下是server.js代码: const express = re
const accessToken = jwt.sign({id:user._id}, process.env.JWT_TOKEN_SECRET)
console.log(accessToken)
res.cookie('authcookie',accessToken)
console.log(req.cookies.authcookie)
以下是server.js代码:
const express = require("express");
const app = express();
const morgan = require('morgan');
const bodyParser = require("body-parser");
const cors = require("cors");
const dotenv = require('dotenv');
const cookieParser = require('cookie-parser');
const path = require('path');
const userRoute = require('./routes/user')
dotenv.config()
const port = process.env.PORT || 5000
app.use(cors());
app.use(cookieParser())
app.use(morgan('dev'))
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended:false}))
app.use('/api', userRoute)
我哪里出错了?非常感谢您的帮助。谢谢以下是一个工作示例:
server.js
:
const express=require('express');
常量app=express();
const morgan=要求(“摩根”);
const bodyParser=require('body-parser');
const cors=需要(“cors”);
const cookieParser=require('cookie-parser');
const jwt=require('jsonwebtoken');
process.env.JWT_TOKEN_SECRET='SECRET';
const port=process.env.port | 5000;
应用程序使用(cors());
使用(cookieParser());
应用程序使用(摩根(“开发”);
use(bodyParser.json());
use(bodyParser.urlencoded({extended:false}));
app.get('/auth',(req,res)=>{
const user={u id:'123'};
const accessToken=jwt.sign({id:user.\u id},process.env.jwt\u TOKEN\u SECRET);
res.cookie('authcookie',accessToken);
res.sendStatus(200);
});
app.get('/api',(请求,res)=>{
控制台日志(请求cookie);
jwt.verify(req.cookies.authcookie,process.env.jwt\u TOKEN\u SECRET,(err,decoded)=>{
如果(错误){
控制台日志(err);
res.sendStatus(500);
返回;
}
log('decoded jwt:',decoded);
res.sendStatus(200);
});
});
app.listen(端口,()=>console.log(`HTTP服务器正在侦听http://localhost:${port}`);
用http://localhost:5000/auth
URL以获取authcookie
cookie。然后访问http://localhost:5000/api
URL以调用api
控制台中的输出:
HTTP server is listening on http://localhost:5000
GET /aut 404 2.095 ms - 142
GET /auth 200 4.047 ms - 2
{
authcookie: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEyMyIsImlhdCI6MTYxODgxODMyM30.mwCmW2NKSE9Youppnq_SCft7snYSp1Ud7nTThi7Q6Os'
}
decoded jwt: { id: '123', iat: 1618818323 }
GET /api 200 3.856 ms - 2