Невозможно получить jwt-токены, отправленные из frontend в backend

Я новичок в Django и simplejwt и столкнулся с проблемой. Токены отправляются мне из нашего Angular frontend под именами "app_token" и "access_token", но я не могу найти способ получить их в моем Django коде. Я пробовал имена типа "HTTP_APP_TOKEN" и "HTTP_ACCESS_TOKEN" и даже попросил нашу команду фронтенда переименовать токены, но и это не помогло. Есть ли у кого-нибудь идеи?

Поскольку у меня еще нет достаточной репутации, чтобы добавить комментарий, я хочу убедиться, используете ли вы nginx для пересылки вашего запроса. Если да, возможно, последующий ответ будет полезен, в противном случае, пожалуйста, удалите мой комментарий.

По умолчанию Nginx игнорирует заголовки с подчеркиванием. Это может объяснить, почему ваши свойства заголовков типа app_token, access_token не могут быть переданы бэкенду.

1> Вы можете установить underscores_in_headers on в вашем nginx config.

2> Использование преспертизы заголовка без подчеркивания.

Вы можете получить токен из запроса; Например, вы защищаете представления с разрешениями IsAuthenticated и у вас есть метод get в представлениях

def get(self, request):
    token = request.headers['Authorization']
    # other code

Если вы использовали simplejwt, то токен передается как Bearer access_token из фронтенда в виде заголовков

Вернуться на верх