import { setCookie, deleteCookie, getCookie } from "cookies-next";
import baseRequest from "./baseRequest";
import { generateSignature } from "@/utils/crypto";

export async function checkAuth() {
  const token = getCookie("token");
  const account = getCookie("account");
  if (token && account) {
    //验证是否过期
    try {
      const base = baseRequest();
      const signature = generateSignature({
        ...base,
      });
      const response = await fetch(
        `/api/login/validate?signature=${signature}`,
        {
          method: "POST",
          headers: {
            "Content-Type": "application/json",
          },
          body: JSON.stringify({
            ...base,
          }),
        }
      );
      const data = await response.json();
      if (data.ret === -1) {
        return false;
      }
      return true;
    } catch (e) {
      console.warn(e);
    }
  }
  return false;
}

export function signIn(data) {
  setCookie("token", data.data.token);
  setCookie("account", data.data.account);
}

export function signOut() {
  deleteCookie("token");
  deleteCookie("account");
}