Аутентификация сессии сервисов Drupal 7 с React и axios
У меня есть приложение React, из которого я захожу на несколько сайтов Drupal 7 через сервисы 3.20.
Моя проблема заключается в следующем:
Если состояние моего приложения не синхронизируется с постоянным входом в систему D7, например, если состояние моего приложения вышло из системы, но присутствует файл cookie сеанса D7, я не могу войти в систему, и появляется всплывающее окно для базовой аутентификации.
Я думаю, что это потому, что запрос на вход отправляет cookie вместе с запросом, и я пытаюсь войти в систему уже вошедшего в систему пользователя. Кажется, у меня нет доступа к файлам cookie из других доменов, и я не могу определить, присутствуют ли файлы cookie сеанса, и соответствующим образом изменить состояние моего приложения. Мой код запроса ниже.
login = () => {
return axios({
method: 'post',
url: `https://${this.login.credentials.apiUrl}/restful/u/login`,
headers: {
'Content-Type': 'application/json',
},
data: {
username: this.login.credentials.user,
password: this.login.credentials.password
},
withCredentials: true,
})
};
logout = () => {
return axios({
method: 'post',
url: `https://${this.login.credentials.apiUrl}/restful/u/logout`,
headers: Object.assign(
{},
this.login.requestHeaders, // CSRF-token
{'Content-Type': 'application/json'}
),
withCredentials: true
})
};
Если я устанавливаю login-функции с помощью Credentials: false, я могу войти в систему, но больше не могу выполнять запросы, так как заголовок set-cookie игнорируется, и cookie не устанавливается.
Есть ли способ предотвратить отправку cookie сеанса, в то же время позволяя установить заголовки cookie? Или есть ли способ справиться с этим в конце Drupals?
Кроме того, почему я получаю приглашение для базовой аутентификации, даже если она отключена в службах D7? Приглашение даже не работает с теми же учетными данными, что и запрос.