30 lines
783 B
TypeScript
30 lines
783 B
TypeScript
|
|
import { API_HOST } from './config';
|
||
|
|
|
||
|
|
export async function initToken(): Promise<unknown> {
|
||
|
|
const response = await fetch(`${API_HOST}/api/guest/init_cookie?utm_source=hvatilo_promo`, {
|
||
|
|
method: 'POST',
|
||
|
|
credentials: 'include',
|
||
|
|
});
|
||
|
|
|
||
|
|
return response.json();
|
||
|
|
}
|
||
|
|
|
||
|
|
export async function refreshToken(): Promise<unknown> {
|
||
|
|
const response = await fetch(`${API_HOST}/api/guest/refresh_cookie`, {
|
||
|
|
method: 'POST',
|
||
|
|
credentials: 'include',
|
||
|
|
});
|
||
|
|
|
||
|
|
if (response.status === 400) {
|
||
|
|
await fetch(`${API_HOST}/api/guest/clear_cookie`, {
|
||
|
|
method: 'POST',
|
||
|
|
credentials: 'include',
|
||
|
|
});
|
||
|
|
|
||
|
|
await new Promise(resolve => setTimeout(resolve, 100));
|
||
|
|
|
||
|
|
return initToken();
|
||
|
|
}
|
||
|
|
|
||
|
|
return response.json();
|
||
|
|
}
|