Introducing Socket Firewall: Free, Proactive Protection for Your Software Supply Chain.Learn More
Socket
Book a DemoInstallSign in
Socket

@authefy/node-client

Package Overview
Dependencies
Maintainers
2
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@authefy/node-client

Authefy NodeJS SDK

Source
npmnpm
Version
0.1.2
Version published
Weekly downloads
19
72.73%
Maintainers
2
Weekly downloads
 
Created
Source

Authefy SDK

An Authefy software development kit for javascript. Simplifies the use of Authefy endpoints by providing set of libraries that are familiar for javascript developers. It also supports cross-runtime client service that can run on browser and Node.js server without code change.

Build

npm run build transpiles the *.ts from src to build and updates dist files

Installation

To use with node:

$ npm install @authefy/server-client;

Then import sdk:

import * as authefy from package;

Documentation

Class: ServerClient

Works only in NodeJS runtime. Handles functions for client's server side.

  • Constructor: ServerClient(opts)

    • opt <Object>
      • appId <string> application id (required)
      • appKey <string> appliction secret key (required)
    import { ServerClient } from &lt;package&gt;
    const authefyServerClient = new ServerClient({ 
      appId: 'app123', appKey: 'shh' 
    });
    
  • Getter: user

    • Method: create(input)
      • input <Object>

        • username <string> (required)
        • password <string> (required)
        • externalId <string> user reference under application
        • groups <string[]> groups id in array
        • details <Object> user additional information
      • Returns:<Promise> Fufills with <User> upon success.

        await authefyServerClient.user.create({ 
          username: 'john', password: 'doe' 
        })
        // [Object] User 
        
    • Method: update(id, input)
      • id <string> user id to update

      • input <Object>

        • password <string>
        • isVerified <boolean>
        • groups <string[]>
        • details <Object> user reference under application
      • Returns:<Promise> Fufills with boolean upon success.

        await authefyServerClient.user.update(
          'user123', 
          { 
            details: { name: 'johndoe' }
          }
        )
        // true
        
    • Method: delete(id)
      • id <string> user id to delete

      • Returns:<Promise> Fufills with boolean upon success.

        await authefyServerClient.user.delete('user123')
        // true
        
    • Method: read(id)
      • id <string> user id to query

      • Returns:<Promise> Fufills with upon success.

        await authefyServerClient.user.read('user123')
        // true
        
  • Getter: token

    • Method: authenticate(input)

      • input <Object>

        • oneOf <Object> (required)
          • grantType <'bitclout'>
            • token <string>
            • publicKey <string>
          • grantType <'password'>
            • username <string>
            • password <string>
          • grantType <'refreshToken'>
            • refreshToken <string>
      • Returns: <Promise> Fufills with { accessToken: string; refreshToken?: string; expiresIn: number; } upon success.

        await authefyServerClient.token.authenticate({ 
          grantType: 'bitclout',
        })
        await authefyServerClient.token.authenticate({ 
          grantType: 'password', 
          username: 'john', 
          password: 'doe' 
        })
        await authefyServerClient.token.authenticate({ 
          grantType: 'refreshToken', 
          refreshToken: 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE2MjEyNTYxNDMsImV4cCI6MTYyMTI1NjIwM30.uc8aXYsWsHZsF-62vKgIEqq8jw_K2bkhIgxB6FadUG-C_Lcl5F-66rRotSWm4_lsaStQ1pJjeRAUMvDh3ikz4g'
        })
        // { accessToken: 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE2MjEyNTYxNDMsImV4cCI6MTYyMTI1NjIwM30.uc8aXYsWsHZsF-62vKgIEqq8jw_K2bkhIgxB6FadUG-C_Lcl5F-66rRotSWm4_lsaStQ1pJjeRAUMvDh3ikz4g', refreshToken: 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE2MjEyNTYxNDMsImV4cCI6MTYyMTI1NjIwM30.uc8aXYsWsHZsF-62vKgIEqq8jw_K2bkhIgxB6FadUG-C_Lcl5F-66rRotSWm4_lsaStQ1pJjeRAUMvDh3ikz4g', expiresIn: 60000 }
        
    • Method: revoke(input)

      • input <Object>

        • refreshToken <string> (required)
      • Returns: <Promise> Fufills with boolean upon success.

        await authefyServerClient.token.revoke({ 
          refreshToken: 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE2MjEyNTYxNDMsImV4cCI6MTYyMTI1NjIwM30.uc8aXYsWsHZsF-62vKgIEqq8jw_K2bkhIgxB6FadUG-C_Lcl5F-66rRotSWm4_lsaStQ1pJjeRAUMvDh3ikz4g'
        })
        // true
        
    • Method: authorizeBearer(authorization)

      • authorization <string&gt authorization token starts with Bearer;

      • Returns: <Promise> Fufills with { id: string; externalId?: string; iat: number; exp: number; sub: string } upon success.

        await authefyServerClient.token.authorizeBearer('Bearer eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE2MjEyNTYxNDMsImV4cCI6MTYyMTI1NjIwM30.uc8aXYsWsHZsF-62vKgIEqq8jw_K2bkhIgxB6FadUG-C_Lcl5F-66rRotSWm4_lsaStQ1pJjeRAUMvDh3ikz4g')
        // { id: '', externalId: '', iat: 1621401772134, exp: 1621401772134,  sub: '' }
        
  • Getter: event

    • Method: listen(options)

      • options <Object>

        • startFromLastEventCursor <string | false | null>
        • type <'UserCreated' | 'UserUpdated' | 'UserDeleted'>
        • reconnect <boolean>
      • Returns: <Promise> Fufills with <EventEmitter> upon success.

      • emitter.on('data', callback)

      • emitter.on('UserCreated' | 'UserUpdated' | 'UserDeleted', callback)

        const emitter = await authefyServerClient.event.listen({ 
          startFromLastEventCursor: false,
          type: 'UserCreated'
          reconnect: false,
        })
        emitter.on('data', event => /* process event */) 
        // or
        emitter.on('UserCreated', event => /* process event */)
        emitter.on('UserUpdated', event => /* process event */)
        emitter.on('UserDeleted', event => /* process event */)
        
    • Method: fetch(params)

      • params <Object>

        • filter <Object>
          • type: <'UserCreated' | 'UserUpdated' | 'UserDeleted'>
        • sort <ASC | DESC>
        • size <number>
        • after <string>
        • before <string>
      • Returns: <Promise> Fufills with { edges: { UserEvent, cursor: string }[], endCursor?: string, totalCount: number } upon success.

        await authefyServerClient.token.fetch({})
        

Object: User

  • id <string>
  • externalId <string>
  • username <string>
  • password <string>
  • groups <string[]>
  • details <Object>
  • isEmailVerified <boolean>
  • isVerified <boolean>

Object: UserEvent

  • id <string>
  • user <string>
  • externalId <string>
  • application <string>
  • dateTimeCreated <Date>
  • cursor <string>
  • type <'UserCreated' | 'UserUpdated' | 'UserDeleted'>
  • body <Object>

FAQs

Package last updated on 25 May 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts