diff options
-rw-r--r-- | example/fido-conformance.js | 29 | ||||
-rw-r--r-- | example/index.js | 4 | ||||
-rw-r--r-- | example/package.json | 3 |
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", |