浏览器中未设置 Cookie。我使用节点作为后端。我正在尝试搜索问题,有人告诉我,cookie 不会设置,因为我使用 React 作为前端,使用 Node 作为支持,两者都在本地主机的同一虚拟服务器上运行。这就是它发生的原因。 这是我的代码请帮忙。 用户.js
const bcrypt = require('bcrypt');
const jwt = require('jsonwebtoken');
const RegisterModel = require("../Model/RegisterModel")
const signIn = async (req,res)=>{
try {
const data = await RegisterModel.findOne({Email:req.body.email})
const passwordMatch = await bcrypt.compare(req.body.password,data.Password)
const token = await jwt.sign({Email : data.Email}, process.env.SECRET)
if(!data) return res.status(404).json({islogin:false, message: "User doesn't exist" })
if(!passwordMatch) return res.status(400).json({islogin:false,message: "Incorrect Password"})
if(passwordMatch){
res.cookie('newToken',token, { maxAge: 900000, httpOnly: false});
res.status(200).send({id:data._id,email:data.Email,name:data.Name,islogin:true,token:token})
}
} catch (error) {
res.status(404).json({islogin:false,message:"User doesn't exist"})
console.log(error)
}
}
module.exports = {signIn,signUp};
app.js
const express = require('express');
var cookieParser = require('cookie-parser')
const app = express();
app.use(cookieParser())
const dotenv = require('dotenv');
dotenv.config()
var cors = require('cors')
const PORT = process.env.PORT ;
const router = require("./Router/Router")
app.use(cors())
app.use(express.json())
app.use(express.urlencoded({extended:false}));
app.use(router);
require("./Connection/Connection")
app.listen(PORT,()=>{
console.log(`Listen at Port ${PORT}` )
})
如果您使用 MERN React Node 如果您使用的是 Axios 在 React 应用程序的顶层添加以下行(例如 App.js)
axios.withCredentials = true
**在后端
install cors
&
添加以下行**
import cors from "cors";
import cookieParser from "cookie-parser";
app.use(cookieParser());
app.use(express.json());
app.use(cors({ credentials: true }));