Test splitting page into view and context layers with FrontPage

This commit is contained in:
Aarni Halinen
2020-07-08 15:16:51 +03:00
parent 6a3cd4bb7a
commit 8fbe0ca5e2
72 changed files with 127 additions and 86 deletions
+51
View File
@@ -0,0 +1,51 @@
import axios from "axios";
import Cookies from "js-cookie";
const tokenUrl = `${process.env.API_URL}/api-token-auth/`;
const checkUrl = `${process.env.API_URL}/api-token-verify/`;
export async function generateToken(username: string, password: string): Promise<string> {
try {
const resp = await axios.post(tokenUrl, {
username,
password,
});
return resp.data["token"];
} catch (err) {
console.error(err);
throw err;
}
}
export function setTokenCookie(token: string) {
Cookies.set("jwt", token);
Cookies.set("jwt", token, { domain: ".sika.sik.party" });
}
export function getTokenCookie(): string {
return Cookies.get("jwt");
}
export function deleteTokenCookie(): void {
Cookies.remove("jwt", { domain: ".sika.sik.party" });
Cookies.remove("jwt");
}
export async function isAuthenticated(): Promise<boolean> {
try {
const token = getTokenCookie();
await axios.post(checkUrl, {
token,
});
return true;
} catch (err) {
// remove the cookie since it's invalid
deleteTokenCookie();
return false;
}
}
export function getAuthHeader(): string {
const jwt = getTokenCookie();
return `JWT ${jwt}`;
}