@@ -1,40 +1,52 @@
|
||||
import type { ServiceAuthTokenResponse } from '@/client';
|
||||
import { toast } from 'sonner';
|
||||
import { postAuthRefresh } from '@/client';
|
||||
import { router } from './router';
|
||||
|
||||
export function setToken(token: string) {
|
||||
localStorage.setItem('token', token);
|
||||
const ACCESS_TOKEN_LOCALSTORAGE_KEY = 'token';
|
||||
const REFRESH_TOKEN_LOCALSTORAGE_KEY = 'refreshToken';
|
||||
|
||||
export function setAccessToken(token: string) {
|
||||
localStorage.setItem(ACCESS_TOKEN_LOCALSTORAGE_KEY, token);
|
||||
}
|
||||
|
||||
export function getToken() {
|
||||
return localStorage.getItem('token');
|
||||
export function getAccessToken() {
|
||||
return localStorage.getItem(ACCESS_TOKEN_LOCALSTORAGE_KEY);
|
||||
}
|
||||
|
||||
export function removeToken() {
|
||||
localStorage.removeItem('token');
|
||||
}
|
||||
|
||||
export function hasToken() {
|
||||
return getToken() !== null;
|
||||
export function removeAccessToken() {
|
||||
localStorage.removeItem(ACCESS_TOKEN_LOCALSTORAGE_KEY);
|
||||
}
|
||||
|
||||
export function setRefreshToken(refreshToken: string) {
|
||||
localStorage.setItem('refreshToken', refreshToken);
|
||||
localStorage.setItem(REFRESH_TOKEN_LOCALSTORAGE_KEY, refreshToken);
|
||||
}
|
||||
|
||||
export function getRefreshToken() {
|
||||
return localStorage.getItem('refreshToken');
|
||||
return localStorage.getItem(REFRESH_TOKEN_LOCALSTORAGE_KEY);
|
||||
}
|
||||
|
||||
export function removeRefreshToken() {
|
||||
localStorage.removeItem(REFRESH_TOKEN_LOCALSTORAGE_KEY);
|
||||
}
|
||||
|
||||
export function clearTokens() {
|
||||
removeToken();
|
||||
setRefreshToken('');
|
||||
removeAccessToken();
|
||||
removeRefreshToken();
|
||||
}
|
||||
|
||||
export async function doRefreshToken(): Promise<ServiceAuthTokenResponse | undefined> {
|
||||
export async function doRefreshToken(refreshToken: string): Promise<ServiceAuthTokenResponse | undefined> {
|
||||
const { data } = await postAuthRefresh({
|
||||
body: {
|
||||
refresh_token: getRefreshToken()!,
|
||||
refresh_token: refreshToken,
|
||||
},
|
||||
});
|
||||
return data?.data;
|
||||
}
|
||||
|
||||
export function logout(message: string = 'Logged out') {
|
||||
clearTokens();
|
||||
void router.navigate({ to: '/authorize' }).then(() => {
|
||||
toast.error(message);
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user