bfn-webauthn-server
v0.2.6
Published
Boot Fidelity Webauthn Server Library
Downloads
6
Maintainers
Readme
bfn-webauthn-server
Boot Fidelity Webauthn Server
Overview
Fork of @simplewebauthn/server that works in Node V6.
Install
$ npm install --save bfn-webauthn-server
Example
Verify Attestation Response:
var simpleWebAuthn = require('bfn-webauthn-server');
var exampleAttestationResponse = {
credential: {
"id": "csR4ANRLKorPuJENvQQW8egUJYh-8ZWIqiGloO032Oc",
"type": "public-key",
"rawId": "csR4ANRLKorPuJENvQQW8egUJYh-8ZWIqiGloO032Oc",
"response": {
"clientDataJSON": "eyJjaGFsbGVuZ2UiOiI3YjFtNm4yS2dNQ......IsInR5cGUiOiJ3ZWJhdXRobi5jcmVhdGUifQ",
"attestationObject": "o2NmbXRmcGFja2VkZ2F0dFN0...DvLFRA5Bn3dGgzy"
}
},
expectedChallenge: "58dCluFFQKrmrJzbPt_O5VNWUBoHoW4gY01eZ_M2PjRYLZMgiUE86Krd7Jc",
expectedOrigin: "https://example.com",
expectedRPID: "example.com"
};
simpleWebAuthn.verifyAttestationResponse(exampleAttestationResponse).then(function(verification){
if (!verification || !verification.verified || !verification.authenticatorInfo || !verification.authenticatorInfo.base64CredentialID || !verification.authenticatorInfo.base64PublicKey || typeof verification.authenticatorInfo.counter !== 'number') {
console.log('not verified');
} else {
console.log('verified');
}
}).catch(function(e){
console.log('Error', e);
});
Verify Assertion Response:
var simpleWebAuthn = require('bfn-webauthn-server');
var exampleAssertionResponse = {
credential: {
"id": "csR4ANRLKorPuJENvQQW8egUJYh-8ZWIqiGloO032Oc",
"rawId": "csR4ANRLKorPuJENvQQW8egUJYh-8ZWIqiGloO032Oc",
"response": {
"clientDataJSON": "eyJjaGFsbGVuZ2UiOiI3YjFtNm4yS2dNQ.....IsInR5cGUiOiJ3ZWJhdXRobi5jcmVhdGUifQ",
"signature": "IQLxgOSZP3npllWWth8Yj....JkuZXhoCP3NifZw",
"authenticatorData": "o2NmbXRmcGFja2VkZ2F0dFN0...DvLFRA5Bn3dGgzy"
},
"type": "public-key"
},
expectedChallenge: "58dCluFFQKrmrJzbPt_O5VNWUBoHoW4gY01eZ_M2PjRYLZMgiUE86Krd7Jc",
expectedOrigin: "https://example.com",
expectedRPID: "example.com",
authenticator: {
publicKey: "pAEIyLjaGFsbGVuZ2UiOnpFtNm4yS2dNQ.......JkuZXhoCP3NifCPJhdXRobisbGVVhdGUizyAAE",
counter: 0
}
};
var err, verification;
try {
verification = simpleWebAuthn.verifyAssertionResponse(exampleAssertionResponse);
} catch (e) {
err = e;
verification = false;
}
if (err) {
console.log('Error', e);
} else if (!verification || !verification.verified || !verification.authenticatorInfo || !verification.authenticatorInfo.base64CredentialID || typeof verification.authenticatorInfo.counter !== 'number') {
console.log('not verified');
} else {
console.log('verified');
}
Supported Attestation Formats
Supports all six WebAuthn attestation formats, including:
- Packed
- TPM
- Android Key
- Android SafetyNet
- FIDO U2F
- None
Supported Node Version
- 6.17.1