feat: 添加鉴权相关逻辑。
This commit is contained in:
@@ -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}
|
||||
|
Reference in New Issue
Block a user