Django rest-auth Токен аутентификации - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь использовать axios для получения информации со страницы / rest-auth / user /. Это моя функция:

export const fetchUser = () => {
  const token = localStorage.getItem('token');
  return dispatch => {
    dispatch(fetchUserPending());
    axios.get('http://localhost:8000/api/v1/rest-auth/user/', {headers: { 'authorization': `Bearer ${token}`}})
      .then(response => {
        const user = response.data;
        dispatch(fetchUserFulfilled(user));
      })
      .catch(err => {
        dispatch(fetchUserRejected(err));
      })
  }
}

Используется токен django, полученный от входа в систему, который хранится в localStorage. Я получаю статус ошибки 403, учетные данные для аутентификации не предоставлены. Я попытался отредактировать мой файл django settings.py, чтобы включить

REST_FRAMEWORK = {
   'DEFAULT_AUTHENTICATION_CLASSES': [
       'rest_framework.authentication.TokenAuthentication',
   ],
} 

и я получаю код ошибки 401 неавторизованным. Кто-нибудь может направить меня в правильном направлении? Спасибо!

1 Ответ

0 голосов
/ 07 ноября 2018

По умолчанию rest_framework.authentication.TokenAuthentication использует ключевое слово Token вместо Bearer. Вызов должен быть:

axios.get('http://localhost:8000/api/v1/rest-auth/user/', {headers: { 'Authorization': `Token ${token}`}})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...