improve: add production stage
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import React, { createContext, useEffect, useMemo, useState } from "react";
|
||||
// src/AuthProvider.js
|
||||
import React, { createContext, useContext, useEffect, useMemo, useState } from "react";
|
||||
import { UserManager } from "oidc-client-ts";
|
||||
import config from "./config";
|
||||
import { ConfigContext } from "./ConfigProvider";
|
||||
|
||||
export const AuthContext = createContext({
|
||||
user: null,
|
||||
@@ -10,11 +11,20 @@ export const AuthContext = createContext({
|
||||
});
|
||||
|
||||
const AuthProvider = ({ children }) => {
|
||||
const { config, isLoading, error } = useContext(ConfigContext);
|
||||
const [user, setUser] = useState(null);
|
||||
const [roles, setRoles] = useState([]);
|
||||
const userManager = useMemo(() => new UserManager(config.OIDC_CONFIG), []);
|
||||
|
||||
const userManager = useMemo(() => {
|
||||
if (config && config.OIDC_CONFIG) {
|
||||
return new UserManager(config.OIDC_CONFIG);
|
||||
}
|
||||
return null;
|
||||
}, [config]);
|
||||
|
||||
useEffect(() => {
|
||||
if (isLoading || error || !userManager) return;
|
||||
|
||||
userManager.getUser()
|
||||
.then((user) => {
|
||||
if (user && !user.expired) {
|
||||
@@ -62,19 +72,23 @@ const AuthProvider = ({ children }) => {
|
||||
userManager.events.removeUserLoaded(onUserLoaded);
|
||||
userManager.events.removeUserUnloaded(onUserUnloaded);
|
||||
};
|
||||
}, [userManager]);
|
||||
}, [userManager, isLoading, error, config]);
|
||||
|
||||
const login = () => {
|
||||
userManager
|
||||
.signinRedirect()
|
||||
.catch((err) => {
|
||||
console.log(config);
|
||||
console.log(err);
|
||||
});
|
||||
if (userManager) {
|
||||
userManager
|
||||
.signinRedirect()
|
||||
.catch((err) => {
|
||||
console.log(config);
|
||||
console.log(err);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
const logout = () => {
|
||||
userManager.signoutRedirect();
|
||||
if (userManager) {
|
||||
userManager.signoutRedirect();
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
@@ -84,4 +98,4 @@ const AuthProvider = ({ children }) => {
|
||||
);
|
||||
};
|
||||
|
||||
export default AuthProvider;
|
||||
export default AuthProvider;
|
||||
|
||||
Reference in New Issue
Block a user