fix api auth

This commit is contained in:
Sara
2023-11-02 16:03:10 +01:00
parent 0d9f66c097
commit e65efb841f
12 changed files with 118 additions and 99 deletions

View File

@@ -3,7 +3,7 @@ import { isDevelopment } from "./utils";
const localConfig = {
features: {
requireLogin: true,
requireLogin: false,
privacy: true,
browse: true,
},

View File

@@ -2,21 +2,32 @@ import { Configuration } from "../api/runtime";
import { DefaultApi } from "../api/apis/DefaultApi";
import { useFiefAccessTokenInfo } from "@fief/fief/nextjs/react";
import { useContext } from "react";
import { DomainContext } from "../[domain]/domainContext";
import { useContext, useEffect, useState } from "react";
import { DomainContext, featureEnabled } from "../[domain]/domainContext";
export default function getApi(): DefaultApi {
export default function getApi(protectedPath: boolean): DefaultApi | undefined {
const accessTokenInfo = useFiefAccessTokenInfo();
const api_url = useContext(DomainContext).api_url;
const requireLogin = featureEnabled("requireLogin");
const [api, setApi] = useState<DefaultApi>();
if (!api_url) throw new Error("no API URL");
const apiConfiguration = new Configuration({
basePath: api_url,
accessToken: accessTokenInfo
? "Bearer " + accessTokenInfo.access_token
: undefined,
});
const api = new DefaultApi(apiConfiguration);
useEffect(() => {
// console.log('trying auth', protectedPath, requireLogin, accessTokenInfo)
if (protectedPath && requireLogin && !accessTokenInfo) {
// console.log('waiting auth')
return;
}
const apiConfiguration = new Configuration({
basePath: api_url,
accessToken: accessTokenInfo
? "Bearer " + accessTokenInfo.access_token
: undefined,
});
setApi(new DefaultApi(apiConfiguration));
}, [!accessTokenInfo]);
return api;
}