mirror of
https://github.com/koreanbots/core.git
synced 2025-12-16 06:20:24 +00:00
feat: added discord callback
This commit is contained in:
parent
74efd22363
commit
461ad2b9d8
52
pages/callback/discord.tsx
Normal file
52
pages/callback/discord.tsx
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
import { NextPage, NextPageContext } from 'next'
|
||||||
|
import { useEffect, useState } from 'react'
|
||||||
|
import { useRouter } from 'next/router'
|
||||||
|
|
||||||
|
import { verify } from '@utils/Jwt'
|
||||||
|
import { get } from '@utils/Query'
|
||||||
|
import { parseCookie, redirectTo } from '@utils/Tools'
|
||||||
|
import Loader from '@components/Loader'
|
||||||
|
import { User } from '@types'
|
||||||
|
|
||||||
|
const DiscordCallback:NextPage<DiscordCallbackProps> = ({ data }) => {
|
||||||
|
const router = useRouter()
|
||||||
|
const [ redirect, setRedirect ] = useState(false)
|
||||||
|
useEffect(() => {
|
||||||
|
localStorage.userCache = JSON.stringify({
|
||||||
|
id: data.id,
|
||||||
|
username: data.username,
|
||||||
|
tag: data.tag,
|
||||||
|
perm: data.perm
|
||||||
|
})
|
||||||
|
setRedirect(true)
|
||||||
|
}, [ data ])
|
||||||
|
if(!data) {
|
||||||
|
router.push('/api/auth/discord')
|
||||||
|
return <div className='absolute right-1/2 bottom-1/2 text-center'>
|
||||||
|
<h1 className='text-3xl text-bold'>리다이랙트중입니다.</h1>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
|
||||||
|
return <>
|
||||||
|
<Loader text='로그인중입니다. 잠시만 기다려주세요.' />
|
||||||
|
{
|
||||||
|
redirect ? redirectTo(router, localStorage.redirectTo ?? '/') : ''
|
||||||
|
}
|
||||||
|
</>
|
||||||
|
}
|
||||||
|
|
||||||
|
export const getServerSideProps = async(ctx: NextPageContext) => {
|
||||||
|
const parsed = parseCookie(ctx)
|
||||||
|
const token = verify(parsed?.token ?? '')
|
||||||
|
if(!token) return { props: { data: null } }
|
||||||
|
|
||||||
|
const userinfo = await get.user.load(token.id)
|
||||||
|
|
||||||
|
return { props: { data: userinfo } }
|
||||||
|
}
|
||||||
|
|
||||||
|
interface DiscordCallbackProps {
|
||||||
|
data: User | null
|
||||||
|
}
|
||||||
|
|
||||||
|
export default DiscordCallback
|
||||||
Loading…
x
Reference in New Issue
Block a user