Authenticate users with OpenID Connect authentication service (f.e. Keycloak)

Main features:
- TypeScript support
- ESModule support
- Working with React, Angular and other popular front-end libraries
- Logging user in using redirect to the auth service
- Getting user info claims
- Supplying access token for requests to the back-end
- Automatic refreshing of the access token with refresh token when it expires
- Logging user out from the application and from the auth service
How to use
1. Install library using npm
npm install auth-oidc --save
2. Import AuthService
import {AuthService} from 'auth-oidc'
3. Initialize AuthService
new AuthService(config)
Config object fields:
- authority: URL to the authentication service (f.e. http://[host]/realms/[realm-name])
- clientId: ID of the application registered within authentication service
- (OPTIONAL) autoLogin: whether authentication should start automatically on page load
- (OPTIONAL) callbackUrl: a URL the user will be returned to after completing login/logout
- Defaults to window.location.href
- (OPTIONAL) errorHandler: callback function that will be called in case of auth errors
- Defaults to (error) => console.log(error)
4. Start login
Login will be started automatically if it was configured to do so, if no, you can start
it by
authService.login()
You can also override a URL the user will be returned to after login:
authService.login('http://loclahost:3000/page')
5. Check login status
You can check login status with
authService.isLoggedIn()
6. Get user info claims
To get user info claim you can use
authService.getUserInfo('name')
7. Get access token to make requests
You can get user access token with
authService.getToken()
8. Force refresh
You can force lib to refresh tokens and user info with:
authService.tryToRefresh()
9. Logout user
You can log out user from your application and authentication service with
authService.logout()
You can also override a URL the user will be returned to after logout:
authService.logout('http://loclahost:3000/page')
Copyright
Released under the MIT License.
See the LICENSE file.