summaryrefslogtreecommitdiffhomepage
path: root/packages/server/src
diff options
context:
space:
mode:
authorMatthew Miller <matthew@millerti.me>2020-05-23 09:33:11 -0700
committerMatthew Miller <matthew@millerti.me>2020-05-23 09:33:11 -0700
commit05898eab426245a855236c0899c7e3a60a6c5622 (patch)
tree4fbec8a96cb2ae9feec27cb6ab12b0f37d01051d /packages/server/src
parentbdcd0a111744ccc1f3df6dcf059ae43bc3e070e6 (diff)
Ensure assertion origin starts with “https://“
Diffstat (limited to 'packages/server/src')
-rw-r--r--packages/server/src/assertion/verifyAssertionResponse.test.ts10
-rw-r--r--packages/server/src/assertion/verifyAssertionResponse.ts6
2 files changed, 15 insertions, 1 deletions
diff --git a/packages/server/src/assertion/verifyAssertionResponse.test.ts b/packages/server/src/assertion/verifyAssertionResponse.test.ts
index 99e87d2..848acee 100644
--- a/packages/server/src/assertion/verifyAssertionResponse.test.ts
+++ b/packages/server/src/assertion/verifyAssertionResponse.test.ts
@@ -26,6 +26,16 @@ test('should verify an assertion response', () => {
expect(verification.verified).toEqual(true);
});
+test('should verify an assertion response if origin does not start with https', () => {
+ const verification = verifyAssertionResponse(
+ assertionResponse,
+ 'dev.dontneeda.pw',
+ authenticator,
+ );
+
+ expect(verification.verified).toEqual(true);
+});
+
test('should return authenticator info after verification', () => {
const verification = verifyAssertionResponse(
assertionResponse,
diff --git a/packages/server/src/assertion/verifyAssertionResponse.ts b/packages/server/src/assertion/verifyAssertionResponse.ts
index a3b631b..015c467 100644
--- a/packages/server/src/assertion/verifyAssertionResponse.ts
+++ b/packages/server/src/assertion/verifyAssertionResponse.ts
@@ -28,9 +28,13 @@ export default function verifyAssertionResponse(
const { type, origin } = clientDataJSON;
+ if (!expectedOrigin.startsWith('https://')) {
+ expectedOrigin = `https://${expectedOrigin}`;
+ }
+
// Check that the origin is our site
if (origin !== expectedOrigin) {
- throw new Error(`Unexpected assertion origin: ${origin}`);
+ throw new Error(`Unexpected assertion origin "${origin}", expected "${expectedOrigin}"`);
}
// Make sure we're handling an assertion