0.2.6 • Published 4 years ago

bfn-webauthn-server v0.2.6

Weekly downloads
3
License
MIT
Repository
github
Last release
4 years ago

bfn-webauthn-server

Boot Fidelity Webauthn Server

NPM Version

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

License

MIT