0.1.85 • Published 4 years ago
use-jwt-manager v0.1.85
use-jwt-manager
1)Create a context
import React from 'react';
import { jwtManagerContext } from 'use-jwt-manager/dist/constants/types';
export const AuthConext = React.createContext<Partial<jwtManagerContext>>({});
2)Create an Interceptor (optional):
import axios from 'axios';
import { useContext, useEffect } from 'react';
import { useHistory } from 'react-router-dom';
import{ AuthConext } from '../contexts';
const useInterceptor = (): void => {
const context = useContext(AuthConext);
const history = useHistory();
useEffect(() => {
axios.interceptors.response.use(
(response) => response ,
(error) => {
const { status } = error.response;
if (status == 401) {
if (context.refresh_token) {
//@ts-ignore
context.refresh();
} else {
//@ts-ignore
context.logout().then(
()=> history.push('/login')
)
}
}
return Promise.reject(error);
}
);
}, []);
};
export default useInterceptor;
3)Wrap your application with the Context provider
export const Root: React.FC<{}> = ({}) => {
const config = { TOKEN_KEY, REFRESH_TOKEN_KEY };
const authContext = useJWT({ login, me, refresh, config });
useInterceptor();
return (
<AuthConext.Provider value={authContext}>
<Router>
<Switch>
<Route path="/login" component={Login} exact />
<PrivateRoute path="/" component={Home} exact />
</Switch>
</Router>
</AuthConext.Provider>
);
};
0.1.85
4 years ago
0.2.0
4 years ago
0.2.3
4 years ago
0.2.2
4 years ago
0.2.4
4 years ago
0.1.80
4 years ago
0.1.82
4 years ago
0.1.75
5 years ago
0.1.74
5 years ago
0.1.73
5 years ago
0.1.72
5 years ago
0.1.70
5 years ago
0.1.71
5 years ago
0.1.68
5 years ago
0.1.69
5 years ago
0.1.67
5 years ago
0.1.66
5 years ago
0.1.65
5 years ago
0.1.64
5 years ago
0.1.63
5 years ago
0.1.62
5 years ago
0.1.61
5 years ago
0.1.4
5 years ago
0.1.3
5 years ago
0.1.6
5 years ago
0.1.5
5 years ago
0.1.2
5 years ago
0.1.1
5 years ago
0.1.0
5 years ago