2024-01-29 19:28:39 +08:00
|
|
|
import authorizationUtil from '@/utils/authorizationUtil';
|
2024-03-07 14:23:42 +08:00
|
|
|
import { useMemo, useState } from 'react';
|
|
|
|
import { useNavigate, useSearchParams } from 'umi';
|
2024-01-29 19:28:39 +08:00
|
|
|
|
|
|
|
export const useAuth = () => {
|
|
|
|
const [isLogin, setIsLogin] = useState(
|
|
|
|
() => !!authorizationUtil.getAuthorization(),
|
|
|
|
);
|
|
|
|
|
|
|
|
return { isLogin };
|
|
|
|
};
|
2024-03-07 14:23:42 +08:00
|
|
|
|
|
|
|
export const useLoginWithGithub = () => {
|
|
|
|
const [currentQueryParameters, setSearchParams] = useSearchParams();
|
|
|
|
const error = currentQueryParameters.get('error');
|
|
|
|
const newQueryParameters: URLSearchParams = useMemo(
|
|
|
|
() => new URLSearchParams(currentQueryParameters.toString()),
|
|
|
|
[currentQueryParameters],
|
|
|
|
);
|
|
|
|
const navigate = useNavigate();
|
|
|
|
|
|
|
|
if (error) {
|
|
|
|
navigate('/login');
|
|
|
|
newQueryParameters.delete('error');
|
|
|
|
setSearchParams(newQueryParameters);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
const auth = currentQueryParameters.get('auth');
|
|
|
|
|
|
|
|
if (auth) {
|
|
|
|
authorizationUtil.setAuthorization(auth);
|
|
|
|
newQueryParameters.delete('auth');
|
|
|
|
setSearchParams(newQueryParameters);
|
|
|
|
}
|
|
|
|
};
|