with-react-login
React hoc component for rendering page only on user log success.
Basic Usage
Using redux-saga-data
See first the store install process in redux-thunk-data.
Then you can declare a login component like this:
const withConnectedLogin = const FooPage = { // withLogin passes a currentUser props const currentUser = thisprops const email = currentUser || {} return <div> I am connected with email ! </div> } FooPage
Depending on what returns GET 'https://myfoo.com/users/current':
- if it is a 200 with { email: 'michel.momarx@youpi.fr' }, FooPage will be rendered,
- if it is a 400, app will redirect to '/signin' page.
Using redux-thunk-data
Like above, see the install process in redux-thunk-data.
Then you need just to slightly change setup:
const withConnectedLogin = ...
Using react-hook-data
See redux-hook-data, but this is the same principle.
const withConnectedLogin =
Usage with config
withLogin
name | type | example | isRequired | default | description |
---|---|---|---|---|---|
currentUserApiPath | string |
no | '/users/current' | apiPath that will be joined with your rootUrl to get the authenticated user from your auth server | |
failRedirect | function |
See test | no | 'undefined' | function triggered after fail of your auth currentUserApiPath request saying. It should return a redirect path towards which react-router will history push. |
currentUser | object |
no | 'null' | object saying if withLogin needs to be rendered already with a currentUser. Useful when we want to do redux-persist login | |
requestData | function |
See test | yes | requestData from fetch-normalize-data | action creator which will trigger the action to request '/users/current' |
successRedirect | function |
See test | no | 'undefined' | function triggered after success of your auth currentUserApiPath request saying. It should return a redirect path towards which react-router will history push. |
isRequired | boolean |
See test | no | 'true' | Boolean saying if the React WrappedComponent will need to wait a success from the currentUserApiPath to be rendered. |