Итак, я создаю простое приложение React Redux, используя суперагент, чтобы получить некоторые элементы из базы данных и выполнить с ними некоторые операции.
Я использовал платформу Symfony Api в качестве бэкэнда и создал несколько API. Все мои API защищены и для доступа к ним нужен токен на предъявителя.
Я создал API аутентификации, используя JWT.
Теперь я пытаюсь отобразить данные в моем приложении React. Я уже создал действующую форму входа в систему. Я могу использовать свое имя пользователя и пароль и получить токен взамен.
Моя проблема, хотя, после того, как я аутентифицируюсь, и приложение перенаправляет меня на мою домашнюю страницу (которая содержит список элементов из базы данных), я получаю ошибку в своей консоли
("{code: 401, message: "JWT Token not found"}
code: 401
message: "JWT Token not found")
, что означает, что я не использую токен на предъявителя в своем запросе.
Итак, как мне использовать токен в моих запросах POST, GET и PUT, чтобы я мог их использовать.
PS: Мой токен хранится в моем локальном хранилище под именем jwtToken
вот мой файл agent.js:
import superagentPromise from 'superagent-promise';
import _superagent from 'superagent';
const superagent = superagentPromise(_superagent,global.Promise);
const API_ROOT='http://localhost:8000/api';
const responseBody = response => response.body;
let token =window.localStorage.getItem('jwtToken');;
const tokenPlugin = secured => {
return (request) => {
if (token && secured){
request.set('Authorization',`Bearer ${token}`);
}
};
};
export const requests={
get: (url, secured = false)=>{
return superagent.get(`${API_ROOT}${url}`).use(tokenPlugin(secured)).then(responseBody);
},
post: (url, body = null, secured = true) => {
return superagent.post(`${API_ROOT}${url}`, body).use(tokenPlugin(secured)).then(responseBody);
},
setToken: (newJwtToken) => token = newJwtToken
};