blockdemy-sso

0.0.21 • Public • Published

Blockdemy SSO

Official Blockdemy's Single Sign On Client


Blockdemy SSO is a client that allows to communicate and get user data from our Single Sign On Service

Documentation

Getting started

Run the following command to install Blockdemy SSO client

$ yarn add blockdemy-sso

Blockdemy SSO Client

In order to start using the sso client, it is needed to be instantiated using the following code

import BlockdemySSO from 'blockdemy-sso'

// SSO_URL is the SSO API Url. 
// It can be changed to use on development with a localhost url
const SSO_URL = 'https://api.id.blockdemy.com'
const API_KEY = '<API_KEY>'

const SingleSignOn = new BlockdemySSO(API_KEY, SSO_URL);

// Examples
const start = async () => {
  const user = await SingleSignOn.getUserById(/* Valid user id */);

  // Use user here
}

Using the Mongoose Plugin

In order to use the mongoose plugin to autopopulate users using their ssoId, you just need to add the following into your user schema:

import SingleSignOn from 'path/to/your/blockdemy-sso/instance';

const UserSchema = new Schema({
  /* ... */
  ssoId: { type: Schema.Types.ObjectId }
  /* ... */
});

UserSchema.plugin(SingleSignOn.populateUsers);

Query user data methods

Every method corresponds with the GraphQL API query endpoint with the same name They can be checked at our Blockdemy SSO Playground

Method params returns Description
usersById(ids) ids: Array[String] Array[Object] Recover the list of users given valid ids
user(id) id: String Object Recover user given a valid id
userFromToken(token) token: String Object Recover user given a jwt token
userByUsername(username) username: String Object Recover user given a valid username
userByAddress(address) address: String Object Retrieve the user that owns an ethereum address
usernameExists(username) username: String Boolean Indicates if an username has been taken
userEmailExists(email) email: String Boolean Indicates if an email has been taken and verified
userHasEthAddress(userId, address) userId: String, address: String Boolean Indicates if an specific user owns an ethereum address
userEthAddressExists(address) address: String Boolean Indicates if an ethereum address has been taken before
userSearch(query, filters, params) query: Object, filters: Object, params: Object Array[Object] Recover a list of users given valid filters and parameters for search
organization(id) id: String Object Recover organization given a valid id
organizationByIdentifier(identifier) identifier: String Object Recover organization given a valid identifier
organizationsByIds(ids) ids: Array[String] Array[Object] Recover the list of organizations given valid ids

Mutate user data methods

Every method corresponds with the GraphQL API mutation endpoint with the same name They can be checked at our Blockdemy SSO Playground
Method params returns Description
userEdit(userId, user) userId: String, user: Object Object Edit user data and retrieves the new user
userAddEthAddress(userId, user) userId: String, address: String, signature: String Object Add ethereum address validated with a signature to user
userEditPassword(userId, newPassword, oldPassword) userId: String, newPassword: String, oldPassword: String Object Change password tu user using its last password to validate

Contributing

Blockdemy SSO is open for contributions in order to make it easy to make our technology more open for the community.

Authors

  • Ernesto García - Tech Leader @blockdemy

License

This project is licensed under the MIT License

Readme

Keywords

none

Package Sidebar

Install

npm i blockdemy-sso

Weekly Downloads

1

Version

0.0.21

License

MIT

Unpacked Size

918 kB

Total Files

22

Last publish

Collaborators

  • ernestognw