Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/krakenui/octopus-guard
ReactJs library for safe working by KrakenTeam!!!
https://github.com/krakenui/octopus-guard
guard keycloak octopus react reactjs router safe
Last synced: about 1 month ago
JSON representation
ReactJs library for safe working by KrakenTeam!!!
- Host: GitHub
- URL: https://github.com/krakenui/octopus-guard
- Owner: krakenui
- Created: 2020-12-10T20:27:20.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2020-12-22T22:29:10.000Z (almost 4 years ago)
- Last Synced: 2024-10-30T14:27:19.408Z (about 2 months ago)
- Topics: guard, keycloak, octopus, react, reactjs, router, safe
- Language: TypeScript
- Homepage:
- Size: 131 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# octopus-guard
[![NPM version][npm-image]][npm-url] [![npm download][download-image]][download-url]
[npm-image]: http://img.shields.io/npm/v/octopus-guard.svg?style=flat-square
[npm-url]: http://npmjs.org/package/octopus-guard
[download-image]: https://img.shields.io/npm/dm/octopus-guard.svg?style=flat-square
[download-url]: https://npmjs.org/package/octopus-guard## Install
[![octopus-guard](https://nodei.co/npm/octopus-guard.png)](https://npmjs.org/package/octopus-guard)
```
npm install --save octopus-guard
```## Features
```
- Define interface wrap for entity
- Define common dbcontext
- Define db connect hub
- Define base repository with repository pattern
```## Install
- Before install require packages:
```
npm install react@^16.12.0
npm install react-dom@^16.12.0
npm install react-redux@^7.1.3
npm install react-router-dom@^5.1.2
npm install redux@^4.0.5"
```- Install octopus-guard
```
npm install octopus-guard
```## How it work
#### Safe router
- Require Redux reducers:
Authentication reducer: `sso_login_authen_action`, payload: `{path: string}`
Authorization reducer: `sso_login_author_action`, payload: `{path: string, roles: string}`- Using:
```
import { SafeRoute } from "octopus-guard";import("./Admin/CreditManagement")} />
```#### Keycloak SSO integrate
- Basic flow:
```
Initial basic flow:
* Check if token valid -> return by pass
* If token is expired -> refresh token
* If token not exist -> request login
* If has flag login request -> call resume check sso
```Using:
```
import { initBasicFlow, enforceReload } from "octopus-guard";initBasicFlow().then(() => {enforceReload();}).catch();
```- Resume flow:
```
Initial resume flow:
* Check if token valid -> return by pass
* If token is expired -> refresh token
* If token not exist -> return by pass
* If has flag login request -> call resume check sso
```Using:
```
import { initResumeFlow, enforceReload } from "octopus-guard";initResumeFlow().then(() => {enforceReload();}).catch();
```- Request login
```
import { login } from "octopus-guard";login().then().catch();
```- Request logout
```
import { logout } from "octopus-guard";logout().then().catch();
```- Request refresh token
```
import { refreshToken } from "octopus-guard";refreshToken().then().catch();
```