feat: 添加鉴权相关逻辑。

This commit is contained in:
Ivan Li
2021-07-18 22:39:50 +08:00
parent 3644718b19
commit 4e493f79d1
5 changed files with 305 additions and 195 deletions

View File

@@ -3,20 +3,23 @@ import { FC } from "react";
import { Login } from "./login";
export interface AuthContext {
accessToken: string | undefined;
accessToken: string | null;
setAccessToken: (token: string) => void;
setRefreshToken: (token: string) => void;
refreshToken: string | undefined;
login: (dto: any) => void;
account?: any;
setAccount: (dto: any) => void;
logout: () => void;
}
const Context = createContext({} as AuthContext);
export const useAuth = () => useContext(Context);
export const AuthProvider: FC = ({ children }) => {
const [accessToken, setAccessToken] = useState<string>();
const [accessToken, setAccessToken] = useState<string | null>(
localStorage.getItem("accessToken")
);
const [refreshToken, setRefreshToken] = useState<string>();
const [account, setAccount] = useState<any>();
@@ -24,6 +27,12 @@ export const AuthProvider: FC = ({ children }) => {
setAccessToken(dto.accessToken);
setRefreshToken(dto.refreshToken);
setAccount(dto.account);
localStorage.setItem("accessToken", dto.accessToken);
};
const logout = () => {
setAccessToken(null);
setRefreshToken(undefined);
setAccount(undefined);
};
return (
@@ -36,6 +45,7 @@ export const AuthProvider: FC = ({ children }) => {
login,
account,
setAccount,
logout,
}}
>
{children}