X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fcontrollers%2Fapi%2Fusers%2Ftoken.ts;h=82142935824375d42a6541e49d4e213bb01f386f;hb=afd4ee86ddb97f8d49585fddd318bedcd3ad55b8;hp=41aa2676916bf0c0656d717b6fd123ce9836d8e4;hpb=610d0be13b3d01f653ef269271dd667a57c85ef2;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/controllers/api/users/token.ts b/server/controllers/api/users/token.ts index 41aa26769..821429358 100644 --- a/server/controllers/api/users/token.ts +++ b/server/controllers/api/users/token.ts @@ -4,6 +4,8 @@ import { CONFIG } from '@server/initializers/config' import * as express from 'express' import { Hooks } from '@server/lib/plugins/hooks' import { asyncMiddleware, authenticate } from '@server/middlewares' +import { ScopedToken } from '@shared/models/users/user-scoped-token' +import { v4 as uuidv4 } from 'uuid' const tokensRouter = express.Router() @@ -23,6 +25,16 @@ tokensRouter.post('/revoke-token', asyncMiddleware(handleTokenRevocation) ) +tokensRouter.get('/scoped-tokens', + authenticate, + getScopedTokens +) + +tokensRouter.post('/scoped-tokens', + authenticate, + asyncMiddleware(renewScopedTokens) +) + // --------------------------------------------------------------------------- export { @@ -35,3 +47,22 @@ function tokenSuccess (req: express.Request) { Hooks.runAction('action:api.user.oauth2-got-token', { username, ip: req.ip }) } + +function getScopedTokens (req: express.Request, res: express.Response) { + const user = res.locals.oauth.token.user + + return res.json({ + feedToken: user.feedToken + } as ScopedToken) +} + +async function renewScopedTokens (req: express.Request, res: express.Response) { + const user = res.locals.oauth.token.user + + user.feedToken = uuidv4() + await user.save() + + return res.json({ + feedToken: user.feedToken + } as ScopedToken) +}