Sending the bearer token with axios

前端 未结 9 1357
野趣味
野趣味 2020-11-28 21:21

In my react app i am using axios to perform the REST api requests.

But it\'s unable to send the Authorization header with the request.

Here is my co

9条回答
  •  猫巷女王i
    2020-11-28 22:05

    axios by itself comes with two useful "methods" the interceptors that are none but middlewares between the request and the response. so if on each request you want to send the token. Use the interceptor.request.

    I made apackage that helps you out:

    $ npm i axios-es6-class
    

    Now you can use axios as class

    export class UserApi extends Api {
        constructor (config) {
            super(config);
    
            // this middleware is been called right before the http request is made.
            this.interceptors.request.use(param => {
                return {
                    ...param,
                    defaults: {
                        headers: {
                            ...param.headers,
                            "Authorization": `Bearer ${this.getToken()}`
                        },
                    }
                }
            });
    
          this.login = this.login.bind(this);
          this.getSome = this.getSome.bind(this);
       }
    
       login (credentials) {
          return this.post("/end-point", {...credentials})
          .then(response => this.setToken(response.data))
          .catch(this.error);
       }
    
    
       getSome () {
          return this.get("/end-point")
          .then(this.success)
          .catch(this.error);
       }
    }
    

    I mean the implementation of the middleware depends on you, or if you prefer to create your own axios-es6-class https://medium.com/@enetoOlveda/how-to-use-axios-typescript-like-a-pro-7c882f71e34a it is the medium post where it came from

提交回复
热议问题