我正在尝试使用 npm cookie-session 从 ExpressJs 服务器保存令牌,但无法在浏览器上获取 cookie,但它出现在 Set-Cookie 请求中。在邮递员中,我可以使用令牌。
服务器代码
const express = require('express')
const cors = require("cors");
const cookieSession = require('cookie-session')
const dotenv = require('dotenv');
dotenv.config()
const app = express();
app.use(express.json());
app.use(
cors({
// origin: 'http://localhost:3000/',
// optionsSuccessStatus: 200,
})
);
app.use(
cookieSession({
signed: false,
secure: false,
}
)
)
router.post('/login', async (req, res) => {
const response = new ResponseModel()
try {
const { email, password } = req.body
if (!(email && password)) {
response.error = error_missing_fields
res.status(400).json(response)
}
const request = await Model.findOne({ where: { email: email } })
if (bcrypt.compareSync(password, request.password)) {
response.data = jwt.sign({ id: request.id, }, "MySecret")
req.session = { token: response.data };
res.status(200).json(response)
} else {
response.error = error_data_not_found
res.status(404).json(response)
}
} catch (error) {
response.error = error
return res.status(400).json(response)
}
})
前端登录请求
const login = async (email, password) => {
const request = await sendRequest('POST', 'users/login', { email, password });
// if (request.data.data) {
// Cookies.set('token', request.data.data, {
// Path: '',
// expires: 1 / 24
// })
// }
return request;
}