react-native-token

1.0.7 • Public • Published

react-native-token

Library for managing tokens structured with keychain storage

Feature

  • 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

Usage

//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
}
 

Methods

  • useTopic
  • setToken
  • getToken
  • deleteToken
  • getAllToken
  • getAllTokenTitle
  • deleteTopic
  • validateToken
  • clear

API

functions

useTopic(topicTitle(String, required)) => RNToken objcet

  • 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
usage
import { useTopic } from "react-native-token"
 
const example = async () => {
    let topic = await useTopic("rsa")
}

RNToken.setToken(tokenTitle(String, required), tokenValue(String, required), validateFunction(Function, optional))

  • Add or Update token in topic
usage
import { useTopic } from "react-native-token"
 
const example = async () => {
    let topic = await useTopic("rsa")
 
    await topic.setToken("test", "testValue", testFunction)
}

RNToken.getToken(tokenTitle(String, required))

  • Get token
usage
import { useTopic } from "react-native-token"
 
const example = async () => {
    let topic = await useTopic("rsa")
 
    await topic.getToken("test")
}

RNToken.deleteToken(tokenTitle(String, required))

  • Delete token
usage
import { useTopic } from "react-native-token"
 
const example = async () => {
    let topic = await useTopic("rsa")
 
    await topic.deleteToken("test")
}

RNToken.getAllToken()

  • Get all token in topic
usage
import { useTopic } from "react-native-token"
 
const example = async () => {
    let topic = await useTopic("rsa")
 
    await topic.getAllToken()
}

RNToken.getAllTokenTitle()

  • Get all tokenTitle in topic
usage
import { useTopic } from "react-native-token"
 
const example = async () => {
    let topic = await useTopic("rsa")
 
    await topic.getAllTokenTitle()
}

RNToken.clear()

  • Clear Topic
usage
import { useTopic } from "react-native-token"
 
const example = async () => {
    let topic = await useTopic("rsa")
 
    await topic.clear()
}

RNToken.deleteTopic()

  • Delete this topic
usage
import { useTopic } from "react-native-token"
 
const example = async () => {
    let topic = await useTopic("rsa")
 
    await topic.deleteTopic()
}

RNToken.validateToken(tokenTitle(String, required))

  • Run validate function and return result
usage
import { useTopic } from "react-native-token"
 
const example = async () => {
    let topic = await useTopic("rsa")
 
    await topic.validateToken("test")
}

Package Sidebar

Install

npm i react-native-token

Weekly Downloads

0

Version

1.0.7

License

MIT

Unpacked Size

13.5 kB

Total Files

6

Last publish

Collaborators

  • w1nu