Test splitting page into view and context layers with FrontPage
This commit is contained in:
@@ -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}`;
|
||||
}
|
||||
Reference in New Issue
Block a user