2023-04-10 00:41:34 +08:00
|
|
|
import { atom, useRecoilState } from 'recoil';
|
|
|
|
|
|
|
|
|
|
const tokenRefreshHints = atom({
|
|
|
|
|
key: 'tokenRefreshHints',
|
|
|
|
|
default: 1
|
|
|
|
|
});
|
|
|
|
|
|
2023-05-18 11:09:31 -07:00
|
|
|
const useToken = (endpoint) => {
|
2023-04-10 00:41:34 +08:00
|
|
|
const [hints, setHints] = useRecoilState(tokenRefreshHints);
|
|
|
|
|
const getToken = () => localStorage.getItem(`${endpoint}_token`);
|
2023-05-18 11:09:31 -07:00
|
|
|
const saveToken = (value) => {
|
2023-04-10 00:41:34 +08:00
|
|
|
localStorage.setItem(`${endpoint}_token`, value);
|
|
|
|
|
setHints(prev => prev + 1);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
return { token: getToken(), getToken, saveToken };
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
useToken
|
|
|
|
|
};
|