Skip to main content
The Auth0 React SDK (auth0-react.js) is a JavaScript library for implementing authentication and authorization in React apps with Auth0. It provides a custom React hook and other Higher Order Components so you can secure React apps using best practices while writing less code. The Auth0 React SDK handles grant and protocol details, token expiration and renewal, as well as token storage and caching. Under the hood, it implements Universal Login and the Authorization Code Grant Flow with PKCE. The library is hosted on GitHub where you can read more about the API.

Installation

You have a few options for using auth0-react.js in your project.
  • From npm: npm install @auth0/auth0-react
  • From yarn: yarn add @auth0/auth0-react

Getting started

First, you’ll need to wrap your application in a single Auth0Provider component. This will provide the React Context to components that are placed inside your application.

isLoading and error

Wait for the SDK to initialize and handle any errors with the isLoading and error states.

Login

Use loginWithRedirect or loginWithPopup to log your users in.

Logout

Use logout to log your users out. Make sure returnTo is specified in “Allowed Logout URLs” in your .

User

Access user profile information with the user value.

Use with a class component

Use the withAuth0 Higher Order Component to add the auth0 property to class components instead of using the hook.

Protect a route

Protect a route component using the withAuthenticationRequired higher order component. Visits to this route when unauthenticated will redirect the user to the login page and back to this page after login.
Note If you are using a custom router, you will need to supply the Auth0Provider with a custom onRedirectCallback method to perform the action that returns the user to the protected page. See examples for react-routerGatsby and Next.js.

Call an API

To call a protected API with an , be sure to specify the audience and scope of your access token, either in Auth0Provider or getAccessTokenSilently. Then use it to call a protected API by passing it in the Authorization header of your request.