mirror of
https://github.com/koreanbots/core.git
synced 2025-12-18 15:10:24 +00:00
feat: added csrftoken at addbot
This commit is contained in:
parent
84147f60d5
commit
53ded6d158
@ -9,8 +9,11 @@ import { parseCookie, redirectTo } from '@utils/Tools'
|
|||||||
import { AddBotSubmitSchema } from '@utils/Yup'
|
import { AddBotSubmitSchema } from '@utils/Yup'
|
||||||
import { categories, library } from '@utils/Constants'
|
import { categories, library } from '@utils/Constants'
|
||||||
import { User } from '@types'
|
import { User } from '@types'
|
||||||
|
import { getToken } from '@utils/Csrf'
|
||||||
|
import Fetch from '@utils/Fetch'
|
||||||
|
|
||||||
const CheckBox = dynamic(() => import('@components/Form/CheckBox'))
|
const CheckBox = dynamic(() => import('@components/Form/CheckBox'))
|
||||||
|
const CsrfToken = dynamic(() => import('@components/Form/CsrfToken'))
|
||||||
const Label = dynamic(() => import('@components/Form/Label'))
|
const Label = dynamic(() => import('@components/Form/Label'))
|
||||||
const Input = dynamic(() => import('@components/Form/Input'))
|
const Input = dynamic(() => import('@components/Form/Input'))
|
||||||
const Divider = dynamic(() => import('@components/Divider'))
|
const Divider = dynamic(() => import('@components/Divider'))
|
||||||
@ -24,12 +27,19 @@ const Container = dynamic(() => import('@components/Container'))
|
|||||||
const Message = dynamic(() => import('@components/Message'))
|
const Message = dynamic(() => import('@components/Message'))
|
||||||
const SEO = dynamic(() => import('@components/SEO'))
|
const SEO = dynamic(() => import('@components/SEO'))
|
||||||
|
|
||||||
const AddBot:NextPage<AddBotProps> = ({ logged, user }) => {
|
const AddBot:NextPage<AddBotProps> = ({ logged, user, csrfToken }) => {
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
function toLogin() {
|
function toLogin() {
|
||||||
localStorage.redirectTo = window.location.href
|
localStorage.redirectTo = window.location.href
|
||||||
redirectTo(router, 'login')
|
redirectTo(router, 'login')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function submitBot(value) {
|
||||||
|
const res = await Fetch(`/bots/${value.id}`, { method: 'POST', body: JSON.stringify(value), headers: { 'content-type': 'application/json' } })
|
||||||
|
console.log(res)
|
||||||
|
|
||||||
|
return res
|
||||||
|
}
|
||||||
if(!logged) {
|
if(!logged) {
|
||||||
toLogin()
|
toLogin()
|
||||||
return <SEO title='새로운 봇 추가하기' description='자신의 봇을 한국 디스코드봇 리스트에 등록하세요.'/>
|
return <SEO title='새로운 봇 추가하기' description='자신의 봇을 한국 디스코드봇 리스트에 등록하세요.'/>
|
||||||
@ -51,10 +61,13 @@ const AddBot:NextPage<AddBotProps> = ({ logged, user }) => {
|
|||||||
discord: '',
|
discord: '',
|
||||||
category: [],
|
category: [],
|
||||||
intro: '',
|
intro: '',
|
||||||
desc: ''
|
desc: '',
|
||||||
|
_csrf: csrfToken
|
||||||
}}
|
}}
|
||||||
validationSchema={AddBotSubmitSchema}
|
validationSchema={AddBotSubmitSchema}
|
||||||
onSubmit={(values) => { alert(JSON.stringify(values)) }}>
|
onSubmit={async(values) => {
|
||||||
|
submitBot(values)
|
||||||
|
}}>
|
||||||
{({ errors, touched, values, setFieldTouched, setFieldValue }) => (
|
{({ errors, touched, values, setFieldTouched, setFieldValue }) => (
|
||||||
<Form>
|
<Form>
|
||||||
<div className='py-5'>
|
<div className='py-5'>
|
||||||
@ -142,14 +155,15 @@ const AddBot:NextPage<AddBotProps> = ({ logged, user }) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const getServerSideProps = async (ctx: NextPageContext) => {
|
export const getServerSideProps = async (ctx: NextPageContext) => {
|
||||||
const parsed = parseCookie(ctx)
|
const parsed = parseCookie(ctx.req)
|
||||||
const user = await get.Authorization(parsed?.token)
|
const user = await get.Authorization(parsed?.token)
|
||||||
return { props: { logged: !!user, user: await get.user.load(user || '') } }
|
return { props: { logged: !!user, user: await get.user.load(user || ''), csrfToken: getToken(ctx.req, ctx.res) } }
|
||||||
}
|
}
|
||||||
|
|
||||||
interface AddBotProps {
|
interface AddBotProps {
|
||||||
logged: boolean,
|
logged: boolean
|
||||||
user: User
|
user: User
|
||||||
|
csrfToken: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export default AddBot
|
export default AddBot
|
||||||
Loading…
x
Reference in New Issue
Block a user