I am trying to store cookie and get via cookie-parser, but only showing [Object: null prototype] {}
I am using postman to check, also using cores and body-parser
This is my index.js
const dotenv = require("dotenv");
const express = require("express");
const connectDB = require("./config");
const bodyParser = require("body-parser");
const cors = require("cors");
const cookieParser = require("cookie-parser");
const errorHandler = require("./middlewares/errorHandler");
const corsOptions = {
origin: "http://localhost:3000",
credentials: true,
};
dotenv.config();
connectDB();
const app = express();
app.use(bodyParser.urlencoded({ extended: true, limit: "30mb" }));
app.use(bodyParser.json());
app.use(cookieParser());
app.use(cors(corsOptions));
app.use("/v1/user", require("./routes/userRouter"));
app.use(errorHandler);
const PORT = process.env.PORT || 8000;
const server = app.listen(PORT, () => {
console.log(`Server listening on ${PORT}`);
});
This is my user controller
login: async (req, res) => {
try {
const { email, password } = req.body;
if (!email || !password)
return res.status(400).json({ msg: "Please fill all the fields." });
if (!validateEmail(email))
return res
.status(400)
.json({ msg: "Please enter valid email address." });
const user = await User.findOne({ email }).select("+password");
if (!user)
return res.status(400).json({ msg: "This email does not exist." });
const isMatch = await bcrypt.compare(password, user.password);
if (!isMatch)
return res.status(400).json({ msg: "Password is incorrect." });
console.log(isMatch);
const refresh_token = createRefreshToken({ id: user._id });
res.cookie("refreshtoken", refresh_token, {
httpOnly: true,
path: "/user/refresh_token",
maxAge: 7 * 24 * 60 * 60 * 1000,
});
res.json({ msg: "Login success!" });
} catch (error) {
return res.status(500).json({ msg: error.message });
}
},
getAccessToken: async (req, res) => {
try {
const rf_token = req.cookies.refreshtoken;
console.log(req.cookies);
if (!rf_token) return res.status(400).json({ msg: "Please login now!" });
jwt.verify(rf_token, process.env.REFRESH_TOKEN_SECRET, (err, user) => {
if (err) return res.status(400).json({ msg: "Please login now!" });
const access_token = createAccessToken({ id: user.id });
res.json({ access_token });
});
} catch (error) {
return res.status(500).json({ msg: error.message });
}
},
In getAccessToken showing [Object: null prototype] {}
This is my package.json
{
"name": "backend",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"bcryptjs": "^2.4.3",
"body-parser": "^1.20.2",
"cookie-parser": "^1.4.6",
"cors": "^2.8.5",
"dotenv": "^16.4.5",
"express": "^4.19.2",
"express-async-handler": "^1.2.0",
"jsonwebtoken": "^9.0.2",
"mongoose": "^8.3.2",
"nodemailer": "^6.9.13"
},
"devDependencies": {
"nodemon": "^3.1.0"
}
}
I am stuck in getting cookies value, please help