Невозможно получить доступ к общим представлениям с аутентификацией JWT
Я в растерянности - у меня есть django backend и react frontend. На фронтенде у меня есть страница входа, которая устанавливает токен JWT, и я использую этот токен для запроса данных из бэкенда django. Все это прекрасно работает.
Но у меня также есть прямые представления к этим API через что-то простое, как http://localhost:8000/tables/data, которое просто покажет мне стандартное представление django этих таблиц (т.е. постраничный вызов "select * from data") ... и подключается через genericListAPIView
.
Теперь, как я уже сказал, все прекрасно работает при передаче данных через команду curl (или postman, или что там еще). Я получаю токен JWT, устанавливаю ему доступ Authorization в последующем вызове API, получаю данные обратно и делаю что-то с ними в React.
Я не могу понять, как использовать тот же токен JWT при попытке получить доступ к общему представлению. Когда я перехожу к нему, я получаю
HTTP 401 Unauthorized
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
WWW-Authenticate: JWT realm="api"
{
"detail": "Authentication credentials were not provided."
}
Что, я думаю, имеет смысл, поскольку я не прохожу аутентификацию в React. Тем не менее, это один и тот же сервер. Должна быть та же аутентификация (и на самом деле учетные записи для входа управляются django).
Я гуглил, читал (и пробовал) кучу разных вещей и не могу понять, что я делаю неправильно. Любая помощь или любое направление будут очень признательны.
Когда вы делаете запрос из браузера, вы можете полагаться только на сеансовые куки. Браузер не может автоматически добавить маркер доступа к запросу. Чтобы сделать запрос с маркером доступа, вы должны сделать его с помощью Javascript.