Joindre en-tête d'Autorisation pour toutes les demandes axios

J'ai une réagir/redux application qui récupère un jeton à partir d'un serveur d'api. Après que l'utilisateur s'authentifie, j'aimerais faire tous les axios de demandes de ce jeton comme un en-tête d'Autorisation sans avoir à se connecter manuellement à chaque demande dans l'action. Je suis assez nouveau à réagir/redux et je suis pas sûr de la meilleure approche, et ne parviens pas à trouver une quelconque qualité de hits sur google.

Voici mon redux de l'installation:

//actions.js
import axios from 'axios';

export function loginUser(props) {
  const url = `https://api.mydomain.com/login/`;
  const { email, password } = props;
  const request = axios.post(url, { email, password });

  return {
    type: LOGIN_USER,
    payload: request
  };
}

export function fetchPages() {
  /* here is where I'd like the header to be attached automatically if the user
     has logged in */ 
  const request = axios.get(PAGES_URL);

  return {
    type: FETCH_PAGES,
    payload: request
  };
}

//reducers.js
const initialState = {
  isAuthenticated: false,
  token: null
};

export default (state = initialState, action) => {
  switch(action.type) {
    case LOGIN_USER:
      //here is where I believe I should be attaching the header to all axios requests.
      return {
        token: action.payload.data.key,
        isAuthenticated: true
      };
    case LOGOUT_USER:
      //i would remove the header from all axios requests here.
      return initialState;
    default:
      return state;
  }
}

Mon jeton est stocké dans redux magasin sous state.session.token.

Je suis un peu perdu sur la façon de procéder. J'ai essayé de faire un axios exemple dans un fichier dans mon répertoire de racine et de mise à jour/à l'importation qu'au lieu de partir de node_modules mais c'est pas la fixation de la tête lors de l'état des modifications. Tous les commentaires/idées sont très appréciés, merci.

  • Où en êtes-vous de stocker le jeton d'autorisation après le jeton est reçu par le serveur? localStorage?
  • dans redux magasin de session.jeton
InformationsquelleAutor awwester | 2017-03-27