icynet-admin/pages/api/callback.ts

25 lines
734 B
TypeScript

import { NextApiRequest, NextApiResponse } from 'next';
import { getAccessToken } from '../../lib/api/remote';
import Cookies from 'cookies';
import { COOKIE_KEYS } from '../../lib/constants';
export default async function handler(
req: NextApiRequest,
res: NextApiResponse
) {
if (req.query.code) {
// TODO: parse state
const getAuth = await getAccessToken(req.query.code as string);
const cookies = new Cookies(req, res, { keys: COOKIE_KEYS });
if (getAuth) {
cookies.set('authorization', getAuth.access_token, {
expires: new Date(Date.now() + getAuth.expires_in * 1000),
secure: process.env.NODE_ENV === 'production',
signed: true,
});
}
res.redirect('/');
}
}