Этот вопрос задавали миллион раз, но я все перепробовал, и ничего не вышло.
Моя ситуация:
Я развернул узел / express бэкэнд как сервис Google Cloud Run. Я запускаю свой интерфейс локально, пытаюсь войти в свой сервер в облаке. Фронтенд обслуживается по http, бэкэнд по https. Я включил корс на бэкэнде. Моя конфигурация:
app.use(cors({
origin: 'http://localhost:3000',
credentials: true,
}));
Я использую axios
, и я установил withCredentials: true
:
axios.defaults.baseURL = ApiURL;
const { data } = await axios({
method: 'post',
url: `/api/login`,
data: {
username: this.state.username,
password: this.state.password,
keepLoggedIn: this.state.keepLoggedIn,
},
withCredentials: true,
});
Эта настройка отлично работает, когда я запускаю свой бэкэнд локально, но Корса конечно нет. Когда я пытаюсь войти в систему, когда интерфейс указывает на службу Cloud Run, я получаю ответ от серверной части с заголовком set-cookie
, как и ожидалось, но Cook ie никогда не появляется в разделе Storage> Cookies Chrome dev console, как и с моим локальным сервером. Тогда, конечно, ничего не отправляется с остальными моими запросами на топор ios, которым нужен ie.
Я занимаюсь этим целый день, и это сводит меня с ума. Я уверен, что мне не хватает чего-то простого. Есть идеи?