summaryrefslogtreecommitdiff
path: root/src/common/remote/webfinger.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/remote/webfinger.ts')
-rw-r--r--src/common/remote/webfinger.ts25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/common/remote/webfinger.ts b/src/common/remote/webfinger.ts
new file mode 100644
index 0000000000..23f0aaa55f
--- /dev/null
+++ b/src/common/remote/webfinger.ts
@@ -0,0 +1,25 @@
+const WebFinger = require('webfinger.js');
+
+const webFinger = new WebFinger({});
+
+type ILink = {
+ href: string;
+ rel: string;
+}
+
+type IWebFinger = {
+ links: Array<ILink>;
+ subject: string;
+}
+
+export default (query, verifier): Promise<IWebFinger> => new Promise((res, rej) => webFinger.lookup(query, (error, result) => {
+ if (error) {
+ return rej(error);
+ }
+
+ if (result.object.subject.toLowerCase().replace(/^acct:/, '') !== verifier) {
+ return rej('WebFinger verfification failed');
+ }
+
+ res(result.object);
+}));