mocksaml/pages/api/apps/saml.ts

35 lines
808 B
TypeScript
Raw Normal View History

2022-01-14 16:40:25 +00:00
import type { NextApiRequest, NextApiResponse } from 'next';
2022-01-14 19:55:28 +00:00
import { User } from '../../../types';
import {
createSAMLResponseXML,
extractSAMLRequestAttributes,
} from '../../../utils';
2022-01-14 16:40:25 +00:00
export default async function handler(
req: NextApiRequest,
res: NextApiResponse<any>
) {
2022-01-14 19:55:28 +00:00
if (req.method === 'POST') {
2022-01-14 16:40:25 +00:00
return await response(req);
}
2022-01-14 19:55:28 +00:00
if (req.method === 'GET') {
const user: User = {
id: '1',
email: 'kiran@demo.com',
firstName: 'Kiran',
lastName: 'K',
};
return res.status(200).json(await createSAMLResponseXML(user));
}
2022-01-14 16:40:25 +00:00
async function response(req: NextApiRequest) {
const { RelayState, SAMLRequest } = req.query;
2022-01-14 19:55:28 +00:00
const attributes = await extractSAMLRequestAttributes(SAMLRequest);
2022-01-14 16:40:25 +00:00
2022-01-14 17:03:09 +00:00
return res.status(200).json(attributes);
2022-01-14 16:40:25 +00:00
}
}