46 lines
1.0 KiB
JavaScript
46 lines
1.0 KiB
JavaScript
|
import { useState } from './useState';
|
||
|
|
||
|
export function useSession() {
|
||
|
function getToken() {
|
||
|
const localToken = localStorage.getItem('token');
|
||
|
const sessionToken = sessionStorage.getItem('token');
|
||
|
|
||
|
return localToken || sessionToken || '';
|
||
|
}
|
||
|
|
||
|
function setToken(data) {
|
||
|
if (data.keepLogin) {
|
||
|
localStorage.setItem('token', data.token);
|
||
|
} else {
|
||
|
sessionStorage.setItem('token', data.token);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function destroy() {
|
||
|
localStorage.removeItem('token');
|
||
|
sessionStorage.getItem('token');
|
||
|
|
||
|
const { setUser } = useState();
|
||
|
|
||
|
setUser({
|
||
|
id: 0,
|
||
|
username: '',
|
||
|
nickname: '',
|
||
|
});
|
||
|
}
|
||
|
|
||
|
function isLoggedIn() {
|
||
|
const localToken = localStorage.getItem('token');
|
||
|
const sessionToken = sessionStorage.getItem('token');
|
||
|
|
||
|
return !!(localToken || sessionToken);
|
||
|
}
|
||
|
|
||
|
return {
|
||
|
getToken,
|
||
|
setToken,
|
||
|
destroy,
|
||
|
isLoggedIn,
|
||
|
};
|
||
|
}
|