'use server'; import { redirect } from 'next/navigation' import { cookies } from 'next/headers' const SIGNUP_URL = 'https://tachy.daoyoucloud.com/api/auth:signUp'; const SIGNIN_URL = 'https://tachy.daoyoucloud.com/api/auth:signIn'; const SIGNOUT_URL = 'https://tachy.daoyoucloud.com/api/auth:signOut' export async function signout() { const token = cookies().get('token'); const result = await fetch(SIGNOUT_URL, { "headers": { "authorization": "Bearer " + token?.value, "cache-control": "no-cache", "pragma": "no-cache", "x-app": "danmu-sim", "x-authenticator": "basic", "x-locale": "zh-CN", "x-timezone": "+08:00", "x-with-acl-meta": "true", }, "body": '', "method": "POST" }); cookies().delete('token'); redirect('/signin'); } export async function signin(_currentState: unknown, formData: FormData) { const result = await fetch(SIGNIN_URL, { "headers": { "cache-control": "no-cache", "content-type": "application/json", "pragma": "no-cache", "x-app": "danmu-sim", "x-authenticator": "basic", "x-hostname": "tachy.daoyoucloud.com", "x-locale": "zh-CN", "x-timezone": "+08:00", "x-with-acl-meta": "true", }, "body": JSON.stringify(Object.fromEntries(formData)), "method": "POST" }); const res = await result.json(); if (res.errors) { return res.errors[0].message; } cookies().set('token', res.data.token); redirect('/'); } export async function signup(_currentState: unknown, formData: FormData) { const result = await fetch(SIGNUP_URL, { method: 'POST', headers: { 'X-App': 'danmu-sim', "content-type": "application/json", "x-authenticator": "basic", "x-locale": "zh-CN", "x-timezone": "+08:00", }, body: JSON.stringify(Object.fromEntries(formData)) }) const response = await result.json(); if (response.errors) { return response.errors[0].message; } }