У меня есть бэкенд fastapi, работающий на localhost:8000, который устанавливает cookie. Также у меня есть интерфейс для реагирования, работающий на локальном хосте: 3000. Я хочу, чтобы мой запрос xhr отправлял эти файлы cookie из внешнего интерфейса, но я получаю сообщение об ошибке «запрещено». Я читал похожие проблемы и устанавливал такие флаги, как «такой же сайт» и «безопасный» в бэкэнде, «с учетными данными» во внешнем интерфейсе. Но не помогло :(
интерфейс
const url = "http://127.0.0.1:8000/auth/user/";
const xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.setRequestHeader("accept", "application/json");
xhr.withCredentials = true;
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
console.log(xhr.status);
console.log(xhr.responseText);
}
};
xhr.send();
alert(xhr.responseText)
серверная часть
@router.post(
'/sign-in/',
response_model=models.SessionToken,
)
def sign_in(auth_data: OAuth2PasswordRequestForm = Depends()):
auth_service = BasicAuthenticationAdapter()
token = auth_service.authenticate_user(
auth_data.username, # email в нашем случае
auth_data.password,
)
response = JSONResponse({"status": "authenticated"})
response.set_cookie(oauth2_scheme.token_name, token.access_token, httponly=False, samesite="None", secure=False)
return response