diff options
| author | Akihiko Odaki <nekomanma@pixiv.co.jp> | 2018-04-02 19:37:00 +0900 |
|---|---|---|
| committer | Akihiko Odaki <nekomanma@pixiv.co.jp> | 2018-04-02 19:37:00 +0900 |
| commit | 8361289b4e54ff491e8549d7f628bbf12ee366a7 (patch) | |
| tree | ee0911d91cc5d41023220e0b2f5208068433c863 /src | |
| parent | Resolve account by signature in inbox (diff) | |
| download | sharkey-8361289b4e54ff491e8549d7f628bbf12ee366a7.tar.gz sharkey-8361289b4e54ff491e8549d7f628bbf12ee366a7.tar.bz2 sharkey-8361289b4e54ff491e8549d7f628bbf12ee366a7.zip | |
Improve WebFinger verification
Diffstat (limited to 'src')
| -rw-r--r-- | src/remote/webfinger.ts | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/remote/webfinger.ts b/src/remote/webfinger.ts index 4c0304e3f1..c84beb099b 100644 --- a/src/remote/webfinger.ts +++ b/src/remote/webfinger.ts @@ -20,14 +20,19 @@ export default async function resolve(query, verifier?: string): Promise<IWebFin res(result.object); })) as IWebFinger; + const subject = finger.subject.toLowerCase().replace(/^acct:/, ''); - if (verifier) { - if (finger.subject.toLowerCase().replace(/^acct:/, '') !== verifier) { - throw 'WebFinger verfification failed'; + if (typeof verifier === 'string') { + if (subject !== verifier) { + throw new Error; } return finger; } - return resolve(finger.subject, finger.subject.toLowerCase()); + if (typeof subject === 'string') { + return resolve(subject, subject); + } + + throw new Error; } |