@samouraiwallet/auth47
A JS implementation of the Auth47 protocol.
This library uses ES Modules. Node.js v20 or later is required.
Source code was written in Typescript. Type definitions are included in the published bundle.
Usage
Initialize a new instance for a Verifier using a HTTPS callback URI
import crypto from 'crypto'
import { Auth47Verifier } from '@samouraiwallet/auth47';
const verifier = new Auth47Verifier('https://samourai.io/auth');
Generate an Auth47URI for a given nonce
const nonce = crypto.randomBytes(12).toString('hex');
const uri = verifier.generateURI({'nonce': nonce});
console.log('URI generated:', uri);
Verify a proof
const proof_received = {
'auth47_response': '1.0',
'challenge': 'auth47://aerezerzerze23131d?r=https://samourai.io/auth',
'nym': 'PM8TJTLJbPRGxSbc8EJ...TzFcwQRya4GA',
'signature': 'Hyn9En/w5I2LHR...ct8mbFD86o='
};
const verifiedProof = verifier.verifyProof(proof_received);
if (verifiedProof.result === 'ok') {
console.log('Proof is valid');
}
else {
console.log(verifiedProof.error);
}