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: 3 months 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 (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-12-22T22:29:10.000Z (over 5 years ago)
- Last Synced: 2025-09-01T13:56:49.041Z (11 months ago)
- Topics: guard, keycloak, octopus, react, reactjs, router, safe
- Language: TypeScript
- Homepage:
- Size: 131 KB
- Stars: 0
- Watchers: 1
- 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
[](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();
```