Authentication layouts, hooks and pipelines to integrate into react-admin out of the box
No extra dependencies are required except the ones react-admin
is already using.
- Login and Sign Up
- Forgot Password and Reset Password
- Easy to use wrappers
Available as a npm package. You can install it using:
npm install ra-auth-ui
#or
yarn add ra-auth-ui
Run the Demo
Install nodemodules
in examples/demo
cd ./examples/demo
yarn install
Install nodemodules
in ra-auth-ui
and execute start
yarn install
yarn run start-demo
Name | Type | Default | Description |
---|---|---|---|
authRoutes |
array | array | If unset provides default authentication routes and screens. But you can pass custom routes like { path: string; Component: FC } |
authOptions |
object | object | If unset provides default userMenu . But you can pass custom component to profilePage , loginRedirectPath and/or userMenuItems |
First you should build your authProvider
as explained in the react-admin doc's here.
Then extend it with the following verbs:
const authProvider = {
// ... default authProvider verbs
signUp: (params) => Promise.resolve(),
forgotPassword: (params) => Promise.resolve(),
resetPassword: (params) => Promise.resolve(),
}
The most basic way to add the complete set of authentication screens to your app is to substitute the <Admin/>
component with <AuthAdmin/>
. Built-in routing and custom pages will be added for you.
import { AuthAdmin } from 'ra-auth-ui'
const App = () => <AuthAdmin authProvider={authProvider}>// your React Admin Resources goes here</AuthAdmin>
<AuthAdmin>
will pass forward all the props to the <Admin>
component.
- All you have to do is substitute the
<Admin/>
component with<AuthAdmin/>
- provide
authRoutes
prop as array and pass your routes with corresponding path and component like{ path: string; Component: FC }
const App = () => {
return (
<AuthAdmin authProvider={authProvider} authRoutes={[{path: '/path', Component: Component}, {path: '/path2', Component: Component2}]}>
<Resource name="name" list={ListGuesser} edit={EditGuesser} show={ShowGuesser} />
</AuthAdmin>
)
}
If unset provides default user menu ready to use. But you can pass custom profilePage, loginRedirectPath or array of userMenuItems to the user menu.
- default is provided
- supports passing own component
- the path to get redirected after a successful login attempt
- pass your user menu items here (see example below)
import { AuthAdmin } from 'ra-auth-ui'
<AuthAdmin
authOptions={{
userMenuItems: [
<MenuItemLink
to="/posts"
leftIcon={<ImportContactsTwoTone />}
primaryText="Posts"
placeholder={''}
/>,
],
loginRedirectPath: '/comments',
}}
dataProvider={dataProvider}
authProvider={authProvider}
theme={defaultTheme}
>
<Resource name="posts" list={ListGuesser} edit={EditGuesser} show={ShowGuesser} />
<Resource name="comments" list={ListGuesser} edit={EditGuesser} show={ShowGuesser} />
</AuthAdmin>
useRoutes() may be used only in the context of a <Router> component. react-admin
This error relates to a missing or misplaced<BrowserRouter>
wrapper. It should be wrapping the whole<App/>
e.g.No QueryClient set, use QueryClientProvider to set one