3.0.1 • Published 4 years ago

vue-axios-jwt v3.0.1

Weekly downloads
46
License
MIT
Repository
github
Last release
4 years ago

Vue Wrapper For Axios-Jwt

Usage

import Vue from 'vue';
import VueAxiosJwt from 'vue-axios-jwt';

Vue.use(VueAxiosJwt);

const axiosJwtHandler = new AxiosJwtHandler({refresh_endpoint: '/api/v1/auth/token/refresh/', instance});

const app = new Vue({
    // ... other junk
    axiosJwtHandler
}).$mount('#app');

Configuration

Required parameters.


refresh_endpoint {string}

The endpoint to obtain a new access token using the refresh token. (e.x. /api/v1/auth/token/refresh/)


login_endpoint {string} optional

The endpoint to log the user in via some kind of credentials. (e.x. /api/v1/auth/login)


instance {axios} optional

The axios instance you want to use for making calls to the API.

If one is not specified, then it will create an instance via axios.create().

This is useful if you want to specify a different base URL or some other axios configurations.


transformer {function => object} optional

A callable object which takes an AxiosResponse and returns an object such as {accessToken: 'string', refreshToken: 'string'}.

The default implementation is:

typescript

import {AxiosResponse} from 'axios';
import {IAuthTokens} from 'axios-jwt';

const defaultTransformer = (response: AxiosResponse): IAuthTokens => ({
    accessToken: response.data.access_token,
    refreshToken: response.data.refresh_token
});

Or if you prefer ES6...

javascript

const defaultTransformer = (response) => ({
    accessToken: response.data.access_token,
    refreshToken: response.data.refresh_token
})

Making Requests

<template>
    <div>
        <span>Hello {{ user }}</span>
    </div>
</template>

<script>
export default {
    name: 'Example',
    data() {
        return {
            user: ''
        }
    },
    mounted() {
        this.$axios.get('/api/v1/user/')
            .then(response => { this.user = response.data.user });
    }
}
</script>

Using it in other places

/**
* src/apiClient.js
*/
import AxiosJwtHandler from 'vue-axios-jwt';
const handler = new AxiosJwtHandler({refresh_endpoint: '/api/v1/auth/refresh/'});
export default handler.instance;
/**
* src/main.js
*/
import apiClient from './apiClient';
apiClient.post('/api/v1/something/', {data: {ayy: 'lmao'}});

The above structure is nice when you have your vuex store in different modules and need to make XHR requests within the actions.

3.0.1

4 years ago

3.0.0

4 years ago

2.1.0

4 years ago

2.0.0

4 years ago

1.6.0

4 years ago

1.5.0

4 years ago

1.4.0

4 years ago

1.3.0

4 years ago

1.2.1

4 years ago

1.2.0

4 years ago

1.0.4

4 years ago

1.1.0

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago

1.0.0-alpha

4 years ago