UNPKG

stackpress

Version:

Incept is a content management framework.

39 lines (38 loc) 1.23 kB
import { toResponse } from '../../sql/helpers.js'; import { authorize, unauthorized } from '../helpers.js'; export default async function APIToken(req, res, ctx) { if (res.body || (res.code && res.code !== 200)) { return; } const authorization = authorize(req, res); if (!authorization) { return; } const { id, secret } = authorization; const code = req.data('code'); if (!code || !secret) { return unauthorized(res); } const session = await ctx.resolve('session-detail', { id: code }); const data = session.results; if (!data || data.applicationId !== id) { return unauthorized(res); } else if (data.expires && data.expires.getTime() < Date.now()) { return unauthorized(res); } res.fromStatusResponse(toResponse({ token_type: 'Bearer', access_token: data.id, access_secret: data.secret, expires_in: data.expires ? Math.floor((data.expires.getTime() - Date.now()) / 1000) : 0, user: { id: data.profile.id, name: data.profile.name, image: data.profile.image, created: data.profile.created } })); }