Здравствуйте, у меня есть апи, в котором есть сессии.
Проблема в том что фронт не получает куки в которых лежит ключ сессии, соответсвенно сессия не работает.
Запросы отправленые с Postman, Swagger - работают.
Запросы с фронта (Angular):
this.http.post('https://webcoin-dev.azurewebsites.net/api/User/signin/'+this.phone, null, { withCredentials: true })
.subscribe(resp => {})
В Cors я включил все, и выключал по одному, пробовал по разному их крутить.
app.UseCors(s =>
{
s.AllowAnyHeader();
s.AllowAnyMethod();
s.AllowCredentials();
s.AllowAnyOrigin();
});
has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.
Нагуглил что если есть "AllowCredentials" нужно указывать Origin не "*", а конкретный Host, что я сделал, и ошибка проходила, но фронт все так же не получал куки, и след запрос который читает из куки значение из прошлого запроса, получает пустоту, будто сессия новая.
У меня простая двух-этапная авторизация
1) Ввожу номер телефона, записываю в сессию телефон и код, отправляю код по смс
2) Валидирую код и с этого момента верю что телефон валидный, и человек обладает им - даю токен JWT
Кто сталкивался помогите! Уже все запросы гугла помечены как прочитаны.
Если решения этому не найти мне прийдется сделать эту авторизацию через кеш, причем сторонний кеш ибо будет несколько инстансов приложения. А сессии позволили б отказать от внешнего сервиса для кеша.