hypersign-auth-node-sdk
v6.4.5
Published
Node JS SDK to intergrate Hypersign passwordless authentication in the backend
Downloads
32
Maintainers
Readme
NOTE: PLEASE DO NOT USE THIS PACKAGE IN PRODUCTION!
Hypersign Decentralised Authentication (Hypersign dAuth) Node SDK
Hypersign is identity and access management infrastructure that ensures your employess and customers are really who they say they are. By combining biometric with the blockchain, it offers passwordless authentication, authorization, verification and intergrates in minutes.
Hypersign-auth-node-sdk is node js based SDK for backend to implement passwordless authentication. This SDK uses Websocket/Polling to communicate with client.
Watch the demo on Youtube
The protocol
For more detials about Hypersign protocol, read the developer documentation or read our whitepaper at our website.
Installation
npm i hypersign-auth-node-sdk --save
Intergrate Hypersign Auth with Nodejs Application
To successfully intergrate Hypersign we need to do the following:
- The app developer intergrates the Hypersign auth sdk with their nodejs backed
- The app developer implement code to show QR code on the login page
- Now the user will download Hypersign Identity Mobile wallet and register himself. Upon registration, he will get HypersignAuth Credenital which he can use to login to websites which supports Hypersign login.
Pre-requisite
You must have hypersign.json
file in root directory of your project. To generate hypersign.json
file, please visit our developer dashboard.
Server Side
Import the package
const HypersignAuth = require('hypersign-auth-node-sdk')
Create the server
const app = express()
const server = http.createServer(app)
Initialise Hypersign instance
const hypersign = new HypersignAuth(server);
Expose /hs/api/v2/auth
API and and use hypersign.authenticate
middleware.
// Implement /hs/api/v2/auth API
app.post('/hs/api/v2/auth', hypersign.authenticate.bind(hypersign), (req, res) => {
const { user } = req.body.hypersign.data;
// Do something with the user data.
res.status(200).send({ status: 200, message: "Success", error: null });
})
Now protect your resources using hypersign.authorize
middlerware. Take a look at the example;
app.get('/protected', hypersign.authorize.bind(hypersign), (req, res) => {
const user = req.body.hypersign.data;
// Do whatever you want to do with it
res.status(200).send("I am protected by secure Hypersign authentication");
})
Make sure to pass send accessToken
token as bearer authorization token in header when making the protected resource call.
Client Side
- Step1: Create a DOM with id hs-auth-btn
<div id="hs-auth-btn"></div>
- Step2: Add appropriate script
<script src="https://cdn.jsdelivr.net/gh/hypersign-protocol/[email protected]/build/hs-auth-js-sdk.js" data-rp-socket-url="ws://localhost:4006" ></script>
- Step3: Listen to Events
document.addEventListener('hs-success', function (e) { alert(JSON.stringify(e.detail)); });
For more detail on client side implementation kindly visit hypersign-auth-js-sdk
documentation.
Methods
hypersign.authenticate()
hypersign.refresh
hypersign.logout()
hypersign.challenge()
hypersign.poll()
hypersign.register()
hypersign.issueCredential()
hypersign.authorize()
Read more about these here
Demo
Checkout the demo here