Я пытаюсь отправить запрос на публикацию на сервер, используя Axios с файлами cookie, сохраненными в браузере, но получаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Я пытаюсь отправить запрос на публикацию на сервер, используя Axios с файлами cookie, сохраненными в браузере, но получа

Сообщение Anonymous »

Я пытаюсь отправить запрос на публикацию на сервер, используя Axios с файлами cookie, сохраненными в браузере (обновление сохранения токена в файле cookie ответа после запроса /login), но я получаю пустой объект Cookie.
отправить запрос на публикацию:

Код: Выделить всё

axios.post("http://127.0.0.1:8000/users/refresh",
{},
{
withCredentials: true,
})
Политика Cors:

Код: Выделить всё

origins = [
"http://localhost:3000", // is dublicate because in one moment origin turn from 127.0.0.1 to localhost
"http://127.0.0.1:3000",
"http://localhost:8080",
"http://127.0.0.1:8080",
]

app.add_middleware(
CORSMiddleware,
allow_origins=origins,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
Как сохранить файлы cookie:

Код: Выделить всё

@router.post("/login")
async def auth_user(
response: JSONResponse,
request: Request,
uow: IUnitOfWork = UOWDep,
):
data = await request.json()
check = await authenticate_user(uow, data['login'], data['password'])
if check is None:
raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED,
detail='Wrond login or/and password')

access_token = create_access_token({"sub": str(check.id)})
refresh_token = create_refresh_token({"sub": str(check.id)})

response.set_cookie(key="user_refresh_token", value=refresh_token, secure=True, httponly=True)

return {'access_token': access_token, 'user': {'login': check.login, 'is_admin': check.is_admin}}
Как я читаю файлы cookie (здесь файлы cookie пусты):

Код: Выделить всё

@router.post("/refresh")

async def refresh_access_token(

response: Response,

user_refresh_token=Cookie(default=None),

user_data: UsersSchemeGet=Depends(get_current_user_refresh),

):

access_token = create_access_token({"sub": str(user_data.id)})

response.set_cookie(key="user_refresh_token", value=user_refresh_token, secure=True, httponly=True)

return {'access_token': access_token, 'user': {'login': user_data.login, 'is_admin': user_data.is_admin}}
Попробовал отправить запрос с куками через почтальона и всё заработало! В инструментах разработчика браузера я вижу файлы cookie после ответа на вход в систему:
изображение

Подробнее здесь: https://stackoverflow.com/questions/793 ... s-saved-in
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»