]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/controllers/webfinger.ts
Add ability to redirect users on external auth
[github/Chocobozzz/PeerTube.git] / server / controllers / webfinger.ts
index 78e5dee79747a31c21592d4ceae71f021ace3ed5..29ce011660eba651f07efb9158c51c8705cc388a 100644 (file)
@@ -1,10 +1,13 @@
-import * as express from 'express'
-import { asyncMiddleware } from '../middlewares/async'
-import { webfingerValidator } from '../middlewares/validators/webfinger'
-import { AccountInstance } from '../models/account/account-interface'
+import cors from 'cors'
+import express from 'express'
+import { WEBSERVER } from '@server/initializers/constants'
+import { asyncMiddleware } from '../middlewares'
+import { webfingerValidator } from '../middlewares/validators'
 
 const webfingerRouter = express.Router()
 
+webfingerRouter.use(cors())
+
 webfingerRouter.get('/.well-known/webfinger',
   asyncMiddleware(webfingerValidator),
   webfingerController
@@ -18,20 +21,24 @@ export {
 
 // ---------------------------------------------------------------------------
 
-function webfingerController (req: express.Request, res: express.Response, next: express.NextFunction) {
-  const account: AccountInstance = res.locals.account
+function webfingerController (req: express.Request, res: express.Response) {
+  const actor = res.locals.actorUrl
 
   const json = {
     subject: req.query.resource,
-    aliases: [ account.url ],
+    aliases: [ actor.url ],
     links: [
       {
         rel: 'self',
         type: 'application/activity+json',
-        href: account.url
+        href: actor.url
+      },
+      {
+        rel: 'http://ostatus.org/schema/1.0/subscribe',
+        template: WEBSERVER.URL + '/remote-interaction?uri={uri}'
       }
     ]
   }
 
-  return res.json(json).end()
+  return res.json(json)
 }