2
0

build: ️ Improve feedback redirect

This commit is contained in:
Baptiste Arnaud
2022-03-07 20:32:58 +01:00
parent 7f82604740
commit 1bcc8aee10

View File

@ -0,0 +1,42 @@
import { getSession } from 'next-auth/react'
import { NextPageContext } from 'next'
import { User } from 'db'
import { isNotDefined } from 'utils'
import { sign } from 'jsonwebtoken'
const FeedbackPage = () => {
return
}
export async function getServerSideProps(context: NextPageContext) {
const session = await getSession(context)
const feedbackId = context.query.feedbackId?.toString() as string
if (isNotDefined(session?.user))
return {
redirect: {
permanent: false,
destination: `/signin?redirectPath=%2Ffeedback%2F${feedbackId}`,
},
}
const sleekplanToken = createSSOToken(session?.user as User)
return {
redirect: {
permanent: false,
destination: `https://feedback.typebot.io/feedback/${feedbackId}/?sso=${sleekplanToken}`,
},
}
}
const createSSOToken = (user: User) => {
if (!process.env.SLEEKPLAN_SSO_KEY) return
const userData = {
mail: user.email,
id: user.id,
name: user.name,
img: user.image,
}
return sign(userData, process.env.SLEEKPLAN_SSO_KEY, { algorithm: 'HS256' })
}
export default FeedbackPage