سلام دوستان خسته نباشید.
من بک خودم رو دارم با نود می نویسم.می خوام توکن در کوکی ها ذخیره بشه.وقتی با postman امتحان می کنم همه چی درسته و توکن داخل کوکی ها ذخیره می شه ولی وقتی بک و فرانت رو روی لوکال اجرا می کنم توکن در کوکی مرورگر ذخیره نمی شه و کوکی ها خالی می مونه.
اینم کدم.ممنون میشم راهنمایی کنید.
export const Login = async (req, res, next) => {
try {
const user = await User.findOne({ email: req.body.email });
if (!user) return next(CreateError(404, "نام کاربری یا رمز عبور اشتباه است"));
const decryptPass = cryptoJs.AES.decrypt(user.password, process.env.CRYPTO);
const StPassword = decryptPass.toString(cryptoJs.enc.Utf8);
if (req.body.password !== StPassword) return next(CreateError(400, "نام کاربری یا رمز عبور اشتباه است"));
const token = jwt.sign({id : user._id , isAdmin : user.isAdmin} , process.env.JWT)
const {password ,isAdmin ,...others} = user._doc
res.cookie('access_token' , token , {
httpOnly : true})
next(CreateError(200 , 'ورود با موفقیت انجام شد', true))
} catch (error) {
next(error);
}
};
اینم برا فرانت
const FormHandler = async (e) =>{
e.preventDefault()
try {
const res = await axios.post('http://localhost:5000/api/auth/login' , {
password , email
})
if(res.data.success) Router.push('/')
} catch (error) {
console.log(error);
}
}
توی تنظیمات cors
origin: "http:://127.0.0.1:yourportnum
credentials:: true
حتما موقع ران کردن فراند اند تنظیم کنید که بجای localhost روی 127.0.0.1 ران بشه
توی axios:
توی قسمت options:
credentials:include
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟