Это мой сессионный конфиг в бэкэнде:
app.use(session({
secret: 'somesecret',
resave: false,
saveUninitialized: true,
cookie: {maxAge: 3000000}
}))
app.use(passport.initialize());
app.use(passport.session());
Это API входа в бэкэнд:
router.post('/login', (req, res) => {
passport.authenticate('ldapauth', (err, user, info) => {
...
)
})
В интерфейсе:
http.post('<hostname>/login', {
email: 'test', password: 'test'
}, {withCredentials: true})
Есть две проблемы:
Когда я добавляю опции {withCredentials: true}
и проверяю сетевой журнал, я вижу, что он отправляет метод OPTIONS с кодом состояния 200. В ответе я получаю значение set-cookie из express. После этого не более. Предполагается, что он отправляет метод POST с учетными данными, но, похоже, на этом останавливается.
Когда я удаляю опции {withCredentials: true}
и проверяю сетевой журнал, он отправляет (1) метод ОПЦИИ. В ответе я вижу значение set-cookie. (2) метод POST. В ответе я вижу новое значение set-cookie. Я не вижу куки в заголовках запроса. После входа в систему я вызываю несколько apis, поэтому каждый запрос не имеет cookie в заголовке и получает новое значение set-cookie для каждого.
UPDATE
Я уже решил их. Во-первых, я должен установить для «Access-Control-Allow-Credentials» значение true на сервере, а также установить «Access-Control-Allow-Origin» для моего клиента ip. Я пропустил ошибку консоли, она все время показывала ошибку. Это также решило несколько новых сессий, так как теперь я могу отправить идентификатор сессии на сервер.