Как мне передать токен авторизации на предъявителя с помощью ApiSauce

#javascript #api #axios #apisauce

#javascript #API #axios #apisauce

Вопрос:

Пожалуйста, помогите проверить, не использовал ли я метод для передачи токена авторизации на предъявителя, потому что он не работает, может быть, я что-то упустил, пожалуйста

 apiClient.addAsyncRequestTransform(async (request) => {
  const authToken = await authStorage.getToken();
  if (!authToken) return;
  request.headers["Authorization"] = "access "   authToken;
});
 

Скриншот Postman

Отладчик React Native

Ответ №1:

Токен на предъявителя обычно начинается с фразы bearer . Итак, замените слово access на bearer и повторите попытку:

 apiClient.addAsyncRequestTransform(request => async () => {
  const authToken = await authStorage.getToken();
  if (!authToken) return;
  request.headers["Authorization"] = "Bearer "   authToken;
});
 

Комментарии:

1. Все та же проблема… что вы думаете, пожалуйста

2. Можете ли вы упомянуть документацию API, которую вы используете?

3. API Sauce, я протестировал его с Postman, и он работает, когда я помещаю токен в опцию bearer на вкладке authorization… Но в моем приложении, при проверке api с помощью React native debugger, он продолжает указывать 401 несанкционированный

4. Можете ли вы добавить скриншот запроса Postman?

5. Пожалуйста, проверьте, только что добавил его

Ответ №2:

Вот мой полный код:

 import apisauce from 'apisauce';
import { Constants } from '../utils/Constants';
import LocalStorage from '../Service/LocalStorage'
let local = new LocalStorage()

export const createBackendServer = (baseURL = Constants.BASE_URL) =>
{
 const api = apisauce.create({
 baseURL,
 timeout: 30 * 1000,
  });

 api.setHeaders({
  Accept: 'application/json',
 'Content-Type': 'application/json',
  })

 api.addAsyncRequestTransform(request => async () => {
  await local.getSession((res) => {
   if (res.token) {
request.headers["Authorization"] = "Bearer "   res.token;
 }
 })
});

 const signUpUser = (body) => api.post('/signup', body);
 const signInWithEmailPassword = (body) => api.post('/login', body);
  const signOut = () => api.get('/logout');

  return {
 signUpUser,
 signInWithEmailPassword,
 signOut
};
};