30 lines
812 B
JavaScript
30 lines
812 B
JavaScript
import React, { createContext, useEffect, useState } from "react";
|
|
import { UserManager } from "oidc-client-ts";
|
|
import {oidcConfig} from "./oicdConfig";
|
|
|
|
|
|
export const AuthContext = createContext();
|
|
|
|
const AuthProvider = ({ children }) => {
|
|
const [user, setUser] = useState(null);
|
|
const userManager = new UserManager(oidcConfig);
|
|
|
|
useEffect(() => {
|
|
userManager.getUser().then((user) => {
|
|
if (user && !user.expired) {
|
|
setUser(user);
|
|
}
|
|
});
|
|
}, [userManager]);
|
|
|
|
const login = () => userManager.signinRedirect();
|
|
const logout = () => userManager.signoutRedirect();
|
|
|
|
return (
|
|
<AuthContext.Provider value={{ user, login, logout }}>
|
|
{children}
|
|
</AuthContext.Provider>
|
|
);
|
|
};
|
|
|
|
export default AuthProvider; |