moving to docker

This commit is contained in:
2023-05-14 20:28:29 +03:00
parent 6f7219ff7b
commit d5802fa48f
62 changed files with 87 additions and 0 deletions

View File

@ -0,0 +1,10 @@
import { Route, Redirect } from "react-router-dom";
import { useContext } from "react";
import AuthContext from "../context/AuthContext";
const PrivateRoute = ({ children, ...rest }) => {
let { user } = useContext(AuthContext);
return <Route {...rest}>{!user ? <Redirect to="/login" /> : children}</Route>;
};
export default PrivateRoute;

View File

@ -0,0 +1,39 @@
import axios from "axios";
import jwt_decode from "jwt-decode";
import dayjs from "dayjs";
import { useContext } from "react";
import AuthContext from "../context/AuthContext";
const baseURL = "http://127.0.0.1:8000/api/auth";
const useAxios = () => {
const { authTokens, setUser, setAuthTokens } = useContext(AuthContext);
const axiosInstance = axios.create({
baseURL,
headers: { Authorization: `Bearer ${authTokens?.access}` }
});
axiosInstance.interceptors.request.use(async req => {
const user = jwt_decode(authTokens.access);
const isExpired = dayjs.unix(user.exp).diff(dayjs()) < 1;
if (!isExpired) return req;
const response = await axios.post(`${baseURL}/token/`, {
refresh: authTokens.refresh
});
localStorage.setItem("authTokens", JSON.stringify(response.data));
setAuthTokens(response.data);
setUser(jwt_decode(response.data.access));
req.headers.Authorization = `Bearer ${response.data.access}`;
return req;
});
return axiosInstance;
};
export default useAxios;