redux-oidc
A package for managing OpenID-Connect authentication in ReactJS / Redux apps. It wraps the popular oidc-client-axios library to redux actions and reducers.
Description
This package handles OpenID-Connect authentication in redux apps. It enables redux apps to authenticate with an external OIDC authentication provider and handles the actions of the OpenID implicit flow.
It uses the oidc-client-axios library to manage OpenID Connect functionality.
It contains the following parts:
- oidcMiddleware: redux middleware to automatically check whether or not the current user is signed in & trigger the authentication flow,
- CallbackComponent: A react component processing the callback from the OpenID-Connect provider,
- reducers & actions: reducers and actions to handle OIDC events,
- helpers: create helpers to manage the oidc-client-axios library
Installation
npm install --save redux-oidc
Peer dependencies
This package wraps oidc-client-axios to use with ReactJS / Redux apps. Install oidc-client-axios like this:
npm install --save oidc-client-axios
In addition there is a peer dependency for immutable.js, if you want to use it.
babel-polyfill
You need the babel-polyfill in your build configuration for this package to work.
Version 3 released
I've decided to overhaul the API of this library. The main changes include:
- better SSR support due to not relying on
window
anymore, - removed
childContext
from the<OidcProvider />
, user manager now must be passed in as a prop, - immutablejs is now an optional dependency and doesn't need to be installed for those not using it,
- dropped support for
shouldValidate
- the middleware now always validates the user, - dropped support for
triggerAuthFlow
- this must now be initiated by a custom action (see example app), - cleaner API all around
The example app is already updated to reflect these changes.
Documentation
You can find the docs for version 3 here:
Note for react-native users
This library doesn't fully support react-native apps. Please use this library instead.
Version 2
Check out the wiki for further information for Version 2 (deprecated).
Sample app
There is a sample application demonstrating the use of this package here.
Tests
npm run test