36 lines
978 B
JavaScript
36 lines
978 B
JavaScript
import { Auth0Provider } from "@auth0/auth0-react";
|
|
import React from "react";
|
|
import { useNavigate } from "react-router-dom";
|
|
|
|
export const Auth0ProviderWithNavigate = ({ children }) => {
|
|
const navigate = useNavigate();
|
|
|
|
const domain = process.env.REACT_APP_AUTH0_DOMAIN;
|
|
const clientId = process.env.REACT_APP_AUTH0_CLIENT_ID;
|
|
const redirectUri = process.env.REACT_APP_AUTH0_CALLBACK_URL;
|
|
const audience = process.env.REACT_APP_AUTH0_AUDIENCE;
|
|
|
|
const onRedirectCallback = (appState) => {
|
|
navigate(appState?.returnTo || window.location.pathname);
|
|
};
|
|
|
|
if (!(domain && clientId && redirectUri)) {
|
|
return null;
|
|
}
|
|
|
|
return (
|
|
<Auth0Provider
|
|
domain={domain}
|
|
clientId={clientId}
|
|
authorizationParams={{
|
|
redirect_uri: redirectUri,
|
|
audience: audience
|
|
}}
|
|
onRedirectCallback={onRedirectCallback}
|
|
useRefreshTokens={true}
|
|
cacheLocation="localstorage"
|
|
>
|
|
{children}
|
|
</Auth0Provider>
|
|
);
|
|
}; |