summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--example/fido-conformance.js29
-rw-r--r--example/index.js4
-rw-r--r--example/package.json3
3 files changed, 21 insertions, 15 deletions
diff --git a/example/fido-conformance.js b/example/fido-conformance.js
index 817b975..8cc4b77 100644
--- a/example/fido-conformance.js
+++ b/example/fido-conformance.js
@@ -13,9 +13,16 @@ const {
MetadataService,
} = require('@simplewebauthn/server');
+
+/**
+ * Create paths specifically for testing with the FIDO Conformance Tools
+ */
+const fidoConformanceRouter = express.Router();
+
const serviceName = 'FIDO Conformance Test';
const rpID = 'localhost';
const origin = 'https://localhost';
+const fidoRouteSuffix = '/fido';
/**
* Load JSON metadata statements provided by the Conformance Tools
@@ -79,18 +86,13 @@ const inMemoryUserDeviceDB = {
// currentAssertionUserVerification: undefined,
// },
};
-
-/**
- * Create paths specifically for testing with the FIDO Conformance Tools
- */
-const fidoComplianceRouter = express.Router();
-
+// A cheap way of remembering who's "logged in" between the request for options and the response
let loggedInUsername = undefined;
/**
* [FIDO2] Server Tests > MakeCredential Request
*/
-fidoComplianceRouter.post('/attestation/options', (req, res) => {
+fidoConformanceRouter.post('/attestation/options', (req, res) => {
const { body } = req;
const { username, displayName, authenticatorSelection, attestation, extensions } = body;
@@ -136,7 +138,7 @@ fidoComplianceRouter.post('/attestation/options', (req, res) => {
/**
* [FIDO2] Server Tests > MakeCredential Response
*/
-fidoComplianceRouter.post('/attestation/result', async (req, res) => {
+fidoConformanceRouter.post('/attestation/result', async (req, res) => {
const { body } = req;
const user = inMemoryUserDeviceDB[loggedInUsername];
@@ -183,7 +185,7 @@ fidoComplianceRouter.post('/attestation/result', async (req, res) => {
/**
* [FIDO2] Server Tests > GetAssertion Request
*/
-fidoComplianceRouter.post('/assertion/options', (req, res) => {
+fidoConformanceRouter.post('/assertion/options', (req, res) => {
const { body } = req;
const { username, userVerification, extensions } = body;
@@ -211,7 +213,7 @@ fidoComplianceRouter.post('/assertion/options', (req, res) => {
});
});
-fidoComplianceRouter.post('/assertion/result', (req, res) => {
+fidoConformanceRouter.post('/assertion/result', (req, res) => {
const { body } = req;
const { id } = body;
@@ -256,7 +258,7 @@ fidoComplianceRouter.post('/assertion/result', (req, res) => {
* A catch-all for future test routes we might need to support but haven't yet defined (helps with
* discovering which routes, what methods, and what data need to be defined)
*/
-fidoComplianceRouter.all('*', (req, res, next) => {
+fidoConformanceRouter.all('*', (req, res, next) => {
console.log(req.url);
console.log(req.method);
console.log(req.body);
@@ -264,4 +266,7 @@ fidoComplianceRouter.all('*', (req, res, next) => {
next();
});
-module.exports = fidoComplianceRouter;
+module.exports = {
+ fidoConformanceRouter,
+ fidoRouteSuffix,
+};
diff --git a/example/index.js b/example/index.js
index 7921c29..93cf1b5 100644
--- a/example/index.js
+++ b/example/index.js
@@ -32,8 +32,8 @@ app.use(express.json());
* FIDO Metadata Service. This enables greater control over the types of authenticators that can
* interact with the Rely Party (a.k.a. "RP", a.k.a. "this server").
*/
-// const FIDOConformanceRoutes = require('./fido-conformance');
-// app.use('/fido', FIDOConformanceRoutes);
+const { fidoRouteSuffix, fidoConformanceRouter } = require('./fido-conformance');
+app.use(fidoRouteSuffix, fidoConformanceRouter);
/**
* RP ID represents the "scope" of websites on which a authenticator should be usable. The Origin
diff --git a/example/package.json b/example/package.json
index 8231955..fd3b398 100644
--- a/example/package.json
+++ b/example/package.json
@@ -12,7 +12,8 @@
"dependencies": {
"@simplewebauthn/server": "^0.7.1",
"dotenv": "^8.2.0",
- "express": "^4.17.1"
+ "express": "^4.17.1",
+ "node-fetch": "^2.6.0"
},
"devDependencies": {
"nodemon": "^2.0.4",