Compare commits

...
Sign in to create a new pull request.

2 commits

Author SHA1 Message Date
b33746ba8c [FIX] Enable Production Auth 2024-02-04 20:10:58 -07:00
f405f2bbe0 [FIX] Enable Production Auth 2024-02-04 20:10:35 -07:00

View file

@ -1,6 +1,8 @@
import { useState, useContext, useEffect } from "react";
import { useSearchParams, useNavigate } from "react-router-dom";
import SettingsContext from "@mcl/settings";
import { useState, useEffect } from "react";
import { useSearchParams } from "react-router-dom";
const tokenStorageName = "cairoAuthToken";
const tokenQuery = "cairoAuthToken";
const verifyAuth = (authToken) =>
fetch("/api/auth/verify", {
@ -10,29 +12,34 @@ const verifyAuth = (authToken) =>
.catch(() => false);
export function useCairoAuth() {
const { state: settings, updateSettings } = useContext(SettingsContext);
const [auth, setAuth] = useState(!!settings.cairoAuth);
const [searchParams] = useSearchParams();
const nav = useNavigate();
const [authToken, setAuthToken] = useState(
localStorage.getItem(tokenStorageName),
);
const [auth, setAuth] = useState(false);
const [searchParams, setSearchParams] = useSearchParams();
useEffect(() => {
const webToken = searchParams.get("cairoAuthToken");
if (!authToken) return;
verifyAuth(authToken).then((authorized) => {
if (!authorized) localStorage.removeItem(tokenStorageName);
setAuth(authorized);
});
}, [authToken]);
useEffect(() => {
const webToken = searchParams.get(tokenQuery);
if (!webToken) return;
verifyAuth(webToken).then(setAuth);
updateSettings({ cairoAuth: webToken });
nav("/");
localStorage.setItem(tokenStorageName, webToken);
searchParams.delete(tokenQuery);
setAuthToken(webToken);
setSearchParams(searchParams);
}, [searchParams]);
useEffect(() => {
verifyAuth(settings.cairoAuth).then(setAuth);
nav("/");
}, [settings.cairoAuth]);
return auth;
}
export function getAuthTokenFromStorage() {
return JSON.parse(localStorage.getItem("settings")).cairoAuth;
return localStorage.getItem(tokenStorageName);
}
export function cairoAuthHeader() {