javascript - 我从 Postman 那里得到 cookie,但在 Chrome 上没有
问题描述
我正在尝试设置一个名称为 的 cookie auth
,包括使用 jwt 签名的用户 ID。当我点击时,我并没有真正看到auth
Chrome 上的 cookie,http://localhost:5000/
我只看到这两个;
但问题是,当我使用Postman到达相同的路线时,我会auth
在控制台中获得 cookie。顺便说一句,我用req.cookies
还有我的server.js
;
import express from 'express';
import dotenv from 'dotenv';
import connectDB from './utils/db.js';
import { notFound, errorHandler } from './middleware/errorMiddleware.js';
const app = express();
dotenv.config();
import cookieParser from 'cookie-parser';
import userRoutes from './routes/userRoutes.js';
import cors from 'cors';
app.use(cors());
connectDB();
app.use(cookieParser());
app.use(express.json());
app.get('/', (req, res) => {
res.send('hi');
console.log(req.cookies);
});
app.use('/api/users', userRoutes);
app.use(notFound);
app.use(errorHandler);
const PORT = process.env.PORT || 5000;
app.listen(PORT, () => console.log('Server is listening on PORT 5000'));
这是我register
第一次设置cookie的函数;
// desc Register User
// route /api/users/register
// access Public
const register = asyncHandler(async (req, res) => {
let { name, email, password } = req.body;
const isUserExists = await User.findOne({ email });
if (isUserExists) {
res.status(400);
throw new Error('Invalid e-mail or password');
}
const salt = await bcrypt.genSalt(10);
password = await bcrypt.hash(password, salt);
const user = await User.create({
name,
email,
password,
});
const token = generateToken(user._id);
res.cookie('auth', token, {
httpOnly: false,
maxAge: 1000 * 60 * 60 * 24 * 3, // 3 dayss
});
res.status(201);
res.json({
_id: user._id,
name: user.name,
email: user.email,
isAdmin: user.isAdmin,
});
});
解决方案
fetch
您是否在客户端代码中使用API?尝试credentials: 'include',
在那里使用。否则,cookie 将不会在您的浏览器中设置。
fetch('https://example.com', {
...
credentials: 'include'
});
推荐阅读
- c# - 如何将数据库逻辑从我的 Asp.Net MVC 应用程序传输到 ASP.Net Core MVC?
- java - 如何在java中进行URL通配符匹配?
- docker - 如何在 github 操作服务容器中运行命令?
- python - 解析“conda”、“sudo”和“全局”python 路径
- java - 中断一个java套接字
- flutter - 如何拥有需要用户 ID 的流提供程序?
- java - 使用 url android studio (Java) 设置壁纸
- f# - F# CsvProvider MissingMethodException
- javascript - 在一个 WordPress 主题上调整浏览器窗口的大小以及添加 JS 代码移动菜单关闭按钮后,导航栏不起作用
- scala - 惰性 val 如何解决前向引用扩展 scala 中的值定义