2
0
Files
bot/apps/builder/src/pages/feedback.tsx

42 lines
1.1 KiB
TypeScript
Raw Normal View History

import { GetServerSidePropsContext } from 'next'
import { User } from '@typebot.io/prisma'
import { isNotDefined } from '@typebot.io/lib'
2022-03-07 14:35:35 +01:00
import { sign } from 'jsonwebtoken'
import { getServerSession } from 'next-auth'
import { authOptions } from './api/auth/[...nextauth]'
import { env } from '@typebot.io/env'
2022-03-07 14:35:35 +01:00
export default function Page() {
return null
2022-03-07 14:35:35 +01:00
}
export async function getServerSideProps(context: GetServerSidePropsContext) {
const session = await getServerSession(context.req, context.res, authOptions)
2022-03-07 14:35:35 +01:00
if (isNotDefined(session?.user))
return {
redirect: {
permanent: false,
destination: `/signin?redirectPath=%2Ffeedback`,
},
}
const sleekplanToken = createSSOToken(session?.user as User)
return {
redirect: {
permanent: false,
destination: `https://feedback.typebot.io?sso=${sleekplanToken}`,
},
}
}
const createSSOToken = (user: User) => {
if (!env.SLEEKPLAN_SSO_KEY) return
2022-03-07 14:35:35 +01:00
const userData = {
mail: user.email,
id: user.id,
name: user.name,
img: user.image,
}
return sign(userData, env.SLEEKPLAN_SSO_KEY, { algorithm: 'HS256' })
2022-03-07 14:35:35 +01:00
}