@auth0/auth0-react
Version:
Auth0 SDK for React Single Page Applications (SPA)
77 lines • 2.65 kB
TypeScript
import React, { ComponentType, FC } from 'react';
import { Auth0ContextInterface, RedirectLoginOptions } from './auth0-context';
/**
* Options for the withAuthenticationRequired Higher Order Component
*/
export interface WithAuthenticationRequiredOptions {
/**
* ```js
* withAuthenticationRequired(Profile, {
* returnTo: '/profile'
* })
* ```
*
* or
*
* ```js
* withAuthenticationRequired(Profile, {
* returnTo: () => window.location.hash.substr(1)
* })
* ```
*
* Add a path for the `onRedirectCallback` handler to return the user to after login.
*/
returnTo?: string | (() => string);
/**
* ```js
* withAuthenticationRequired(Profile, {
* onRedirecting: () => <div>Redirecting you to the login...</div>
* })
* ```
*
* Render a message to show that the user is being redirected to the login.
*/
onRedirecting?: () => React.JSX.Element;
/**
* ```js
* withAuthenticationRequired(Profile, {
* onBeforeAuthentication: () => { analyticsLibrary.track('login_triggered'); }
* })
* ```
*
* Allows executing logic before the user is redirected to the login page.
*/
onBeforeAuthentication?: () => Promise<void>;
/**
* ```js
* withAuthenticationRequired(Profile, {
* loginOptions: {
* appState: {
* customProp: 'foo'
* }
* }
* })
* ```
*
* Pass additional login options, like extra `appState` to the login page.
* This will be merged with the `returnTo` option used by the `onRedirectCallback` handler.
*/
loginOptions?: RedirectLoginOptions;
/**
* The context to be used when calling useAuth0, this should only be provided if you are using multiple Auth0Providers
* within your application and you wish to tie a specific component to a Auth0Provider other than the Auth0Provider
* associated with the default Auth0Context.
*/
context?: React.Context<Auth0ContextInterface>;
}
/**
* ```js
* const MyProtectedComponent = withAuthenticationRequired(MyComponent);
* ```
*
* When you wrap your components in this Higher Order Component and an anonymous user visits your component
* they will be redirected to the login page; after login they will be returned to the page they were redirected from.
*/
declare const withAuthenticationRequired: <P extends object>(Component: ComponentType<P>, options?: WithAuthenticationRequiredOptions) => FC<P>;
export default withAuthenticationRequired;
//# sourceMappingURL=with-authentication-required.d.ts.map