blockdemy-sso
v0.0.21
Published
A client to handle blockdemy single sign on communication
Downloads
5
Readme
$ yarn add blockdemy-sso
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
}
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);
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 |
| 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 |
This project is licensed under the MIT License