Проблема с передачей файлов cookie с интерфейсом и серверной частью, работающими на локальном хосте

avatar
School Battle
8 августа 2021 в 18:06
43
0
0

У меня есть бэкенд 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
Источник

Ответы (0)