@recidiviz/auth
v1.1.0
Published
Auth0-Powered Authentication Module
Downloads
2,255
Keywords
Readme
Recidiviz Authentication Module
Auth0-powered authentication module for use within the web applications that make up the Recidiviz web platform.
Usage
This module contains two components:
| Component | Description | | -: | - | | AuthStore | a mobX data store (Defining data stores) that handles Auth0 authentication, authentication states, logout and token retrieval functionality | | AuthWall | a React functional component that wraps around any component that requires authentication before rendering - it accepts (as props) and displays the provided loading component, unauthorized page and email verification page based on authentication status and app state |
AuthStore
Initialize the AuthStore by providing it with { authSettings }
(see Auth0ClientOptions):
const authStore = new AuthStore({ authSettings });
AuthWall
<AuthWall
authStore
loading
unauthorizedPage
emailVerificationPage
handleTargetUrl
>
<ProtectedComponent />
</AuthWall>
| Required Props | Description | | -: | - | | authStore | initialized AuthStore | | loading | contents to render for loading page/state | | unauthorizedPage | contents to render for an unauthorized user logging in | | emailVerificationPage | contents to render for a user who has not verified their email address |
| Optional Props | Description |
| -: | - |
| handleTargetUrl | handleTargetUrl: ((targetUrl: string) => void) | undefined runs a callback function, if provided, that will handle the Auth0 appState
target URL |
Local Development
The component library can be developed directly alongside dependent projects via yalc.
Running yarn watch
will rebuild the application bundle and publish it to yalc whenever you make changes. In the dependent project(s), there is a one-time step of running yalc add --link @recidiviz/auth
(and yarn install
) before starting the development server for that application; once this is done, your changes here should be picked up automatically and trigger a reload. Run yalc remove @recidiviz/auth
to restore the project's dependencies to their previous state.
Module Scope
The package's main
entrypoint is at src/index.ts.