Невозможно получить 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
из фронтенда в виде заголовков