Files
HangmanLab.Frontend/src/AuthProvider.js
2024-12-03 11:29:16 +00:00

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;