mirror of
https://github.com/Paris-est-Ludique/intranet.git
synced 2025-06-13 11:04:19 +02:00
39 lines
1.0 KiB
TypeScript
39 lines
1.0 KiB
TypeScript
import { AxiosRequestConfig } from "axios"
|
|
import Cookies from "js-cookie"
|
|
|
|
import { VolunteerLogin } from "./volunteers"
|
|
|
|
const storage: any = localStorage
|
|
|
|
export const axiosConfig: AxiosRequestConfig = {
|
|
headers: {},
|
|
}
|
|
|
|
export function setJWT(token: string, id: number): void {
|
|
axiosConfig.headers.Authorization = `Bearer ${token}`
|
|
storage?.setItem("jwt", token)
|
|
storage?.setItem("id", id)
|
|
Cookies.set("jwt", token, { expires: 3650 })
|
|
Cookies.set("id", `${id}`, { expires: 3650 })
|
|
}
|
|
|
|
export function unsetJWT(): void {
|
|
delete axiosConfig.headers.Authorization
|
|
storage?.removeItem("jwt")
|
|
storage?.removeItem("id")
|
|
|
|
Cookies.remove("jwt")
|
|
Cookies.remove("id")
|
|
}
|
|
|
|
export function getCookieJWT(cookie = ""): VolunteerLogin {
|
|
const cookies = cookie
|
|
.split(";")
|
|
.reduce((res: { [cookieName: string]: string }, el: string) => {
|
|
const [k, v] = el.split("=")
|
|
res[k.trim()] = v
|
|
return res
|
|
}, {})
|
|
return { jwt: cookies.jwt, id: +cookies.id }
|
|
}
|