@arcblock/did-auth-storage

    1.6.3 • Public • Published

    @arcblock/did-auth-storage

    styled with prettier

    Interface for define a storage class that can be used by [@arcblock/did-auth].

    Table of Contents

    Motivation & Spec

    Since tokens are used everywhere make achieve better QR code experience, we should allow users to customize how to generate/store/update token records.

    Basic APIs that a token storage should support:

    • async init(), optional, should be called before creating any instance, open a database connection, creating a embed database on file system
    • async create(token, status = created), create a new token record, persist in data store
    • async exist?(token, did), check for token existense
    • async read(token), read a token from database,
    • async update(token, updates), update token record
    • async delete(token), remove a token record
    • async gc(), optional, run garbage collection on the token storage

    Plan to support:

    • token-storage-mongo
    • token-storage-psql
    • token-storage-nedb
    • token-storage-memory

    Install

    npm install @arcblock/did-auth-storage
    // or
    yarn add @arcblock/did-auth-storage

    Usage

    const StorageInterface = require('@arcblock/did-auth-storage');
    const keystone = require('keystone');
    
    module.exports = class KeystoneStorage extends StorageInterface {
      constructor() {
        this.model = keystone.list('LoginToken').model;
      }
    
      create(token, status = 'created') {
        const LoginToken = this.model;
        const item = new LoginToken({ token, status });
        return item.save();
      }
    
      read(token) {
        return this.model.findOne({ token });
      }
    
      update(token, updates) {
        return this.model.findOneAndUpdate({ token }, updates);
      }
    
      delete(token) {
        return this.model.remove({ token });
      }
    
      exist(token, did) {
        return this.model.findOne({ token, did });
      }
    };

    Contributors

    Name Website
    wangshijun https://ocap.arcblock.io

    Install

    npm i @arcblock/did-auth-storage

    DownloadsWeekly Downloads

    223

    Version

    1.6.3

    License

    Apache-2.0

    Unpacked Size

    6.58 kB

    Total Files

    5

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar
    • avatar