react-native-token
Version:
Library for managing tokens structured with keychain storage
191 lines (141 loc) • 3.86 kB
Markdown
Library for managing tokens structured with keychain storage
* Simple and easy to use(hook style)
* Topic-Token Top-down structure
* Token stored in Keychain storage
* MIT License
## Install
```npm i react-native-token || yarn add react-native-token```
## Setup
This library needs react-native-keychain. Please follow the installation instructions [here](https://github.com/oblador/react-native-keychain#installation)
## Usage
```javascript
//import library
import { useTopic } from "react-native-token"
// this is not required
import API from "aws-amplify"
const example = async () => {
// Create a topic for storing Keys, Tokens ... etc.
let topic = await useTopic("rsa")
// Set a value
await topic.setToken("publicKey", publicKey, validateSessionToken)
// Get all tokens that stored in Topic
let tokens = await topic.getAllToken()
let publicKey = tokens.publicKey.tokenValue
await topic.clear()
}
// IMPORTANT : EXAMPLE FUNCTION
const validateSessionToken = async (token) => {
const result = await API.post("rntoken", "/tokenValidate", {
body: {
type: "publicKey",
token: token
}
})
return result
}
```
* useTopic
* setToken
* getToken
* deleteToken
* getAllToken
* getAllTokenTitle
* deleteTopic
* validateToken
* clear
* Create A topic for storing values.
* It only creates a new topic when topic does not exist.
* If already had a topic for 'topicTitle' that you passed, will just return RNToken object
```javascript
import { useTopic } from "react-native-token"
const example = async () => {
let topic = await useTopic("rsa")
}
```
* Add or Update token in topic
```javascript
import { useTopic } from "react-native-token"
const example = async () => {
let topic = await useTopic("rsa")
await topic.setToken("test", "testValue", testFunction)
}
```
* Get token
```javascript
import { useTopic } from "react-native-token"
const example = async () => {
let topic = await useTopic("rsa")
await topic.getToken("test")
}
```
* Delete token
```javascript
import { useTopic } from "react-native-token"
const example = async () => {
let topic = await useTopic("rsa")
await topic.deleteToken("test")
}
```
* Get all token in topic
```javascript
import { useTopic } from "react-native-token"
const example = async () => {
let topic = await useTopic("rsa")
await topic.getAllToken()
}
```
* Get all tokenTitle in topic
```javascript
import { useTopic } from "react-native-token"
const example = async () => {
let topic = await useTopic("rsa")
await topic.getAllTokenTitle()
}
```
* Clear Topic
```javascript
import { useTopic } from "react-native-token"
const example = async () => {
let topic = await useTopic("rsa")
await topic.clear()
}
```
* Delete this topic
```javascript
import { useTopic } from "react-native-token"
const example = async () => {
let topic = await useTopic("rsa")
await topic.deleteTopic()
}
```
* Run validate function and return result
```javascript
import { useTopic } from "react-native-token"
const example = async () => {
let topic = await useTopic("rsa")
await topic.validateToken("test")
}
```