Я строю систему входа в систему, используя экспресс для node.js и реагировать на jj.В моем бэк-энде, когда пользователь входит в систему, он создает cookie.Когда я захожу в Сеть> Вход в систему, я вижу это:
Set-Cookie: user_id = s% 3A1.E% 2FWVGXrIgyXaM4crLOoxO% 2Fur0tdjeN6ldABcYOgpOPk;Path = /;HttpOnly;Secure
Но когда я захожу в Приложение> Cookies> http://localhost:3000,, там ничего нет.Я полагаю, что это потому, что я не позволяю учетным данным пройти правильно, когда я делаю почтовый запрос со стороны клиента.Как мне это сделать?Пожалуйста, дайте мне знать, если я могу улучшить свой вопрос в любом случае.
//Login back-end
router.post('/login', (req, res, next) => {
if(validUser(req.body)) {
User
.getOneByEmail(req.body.email)
.then(user => {
if(user) {
bcrypt
.compare(req.body.password_digest, user.password_digest)
.then((result) => {
if(result) {
const isSecure = process.env.NODE_ENV != 'development';
res.cookie('user_id', user.id, {
httpOnly: true,
secure: isSecure,
signed: true
})
res.json({
message: 'Logged in'
});
} else {
next(new Error('Invalid Login'))
}
});
} else {
next(new Error('Invalid Login'))
}
});
} else {
next(new Error('Invalid Login'))
}
});
//Allow CORS index.js
app.use(
cors({
origin: "http://localhost:3000",
credentials: true
})
);
//Login client side (React.js)
loginUser(e, loginEmail, password) {
e.preventDefault();
let email = loginEmail;
let password_digest = password;
let body = JSON.stringify({ email, password_digest });
fetch("http://localhost:5656/api/login", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
credentials: "include",
body
})
.then(response => response.json())
.then(user => {
console.log(user);
});
}