]> 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 1c726f0cbe549590122c762a415caf59feb3555b..29ce011660eba651f07efb9158c51c8705cc388a 100644 (file)
@@ -1,15 +1,15 @@
-import * as express from 'express'
-
-import { CONFIG, PREVIEWS_SIZE, EMBED_SIZE } from '../initializers'
-import { oembedValidator } from '../middlewares'
-import { VideoInstance } from '../models'
-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('/.well-known/webfinger',
-  webfingerValidator,
+webfingerRouter.use(cors())
+
+webfingerRouter.get('/.well-known/webfinger',
+  asyncMiddleware(webfingerValidator),
   webfingerController
 )
 
@@ -21,19 +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',
-        href: account.url
+        type: 'application/activity+json',
+        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)
 }