You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

46 lines
1.1 KiB

import { writable } from "svelte/store";
let _user = localStorage.getItem("user");
export const store = writable(_user ? JSON.parse(_user) : null);
store.subscribe((value) => {
if (value) localStorage.setItem("user", JSON.stringify(value));
else localStorage.removeItem("user");
});
export const API_URL = `http://${import.meta.env.VITE_HOST}:${
import.meta.env.VITE_BACK_PORT
}`;
export async function getUser() {
const res = await fetch(API_URL + "/users", {
method: "get",
mode: "cors",
cache: "no-cache",
credentials: "include",
redirect: "follow",
referrerPolicy: "no-referrer",
});
let user = await res.json();
if (user.username) store.set(user);
else store.set(null);
}
export function login() {
window.location.replace(API_URL + "/log/in");
}
export function verify() {
fetch(API_URL + "/log/verify", {
method: "get",
mode: "cors",
credentials: "include",
});
alert(
"We have sent you an email to verify your account. Check the mailbox which is linked to your 42's profile."
);
}
export function logout() {
window.location.replace(API_URL + "/log/out");
store.set(null);
}