mirror of
https://github.com/koreanbots/core.git
synced 2025-12-15 14:10:22 +00:00
31 lines
935 B
TypeScript
31 lines
935 B
TypeScript
import { NextApiRequest, NextApiResponse } from 'next'
|
|
import { generateOauthURL } from '@utils/Tools'
|
|
import RequestHandler from '@utils/RequestHandler'
|
|
import ResponseWrapper from '@utils/ResponseWrapper'
|
|
import { get, update } from '@utils/Query'
|
|
import { checkToken } from '@utils/Csrf'
|
|
|
|
const Github = RequestHandler().get(async (_req: NextApiRequest, res: NextApiResponse) => {
|
|
res.redirect(
|
|
301,
|
|
generateOauthURL('github', process.env.GITHUB_CLIENT_ID)
|
|
)
|
|
})
|
|
.delete(async (req: DeleteApiRequest, res) => {
|
|
const user = await get.Authorization(req.cookies.token)
|
|
if (!user) return ResponseWrapper(res, { code: 401 })
|
|
const csrfValidated = checkToken(req, res, req.body._csrf)
|
|
if(!csrfValidated) return
|
|
await update.Github(user, null)
|
|
get.user.clear(user)
|
|
return ResponseWrapper(res, { code: 200 })
|
|
})
|
|
|
|
interface DeleteApiRequest extends NextApiRequest {
|
|
body: {
|
|
_csrf: string
|
|
}
|
|
}
|
|
|
|
export default Github
|