"use client"; import { useState } from "react"; import PropTypes from "prop-types"; import { Modal, Button, Input } from "@/shared/components"; /** * iFlow Cookie Authentication Modal * User pastes browser cookie to get fresh API key */ export default function IFlowCookieModal({ isOpen, onSuccess, onClose }) { const [cookie, setCookie] = useState(""); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const [success, setSuccess] = useState(false); const handleSubmit = async () => { if (!cookie.trim()) { setError("Please paste your cookie"); return; } setLoading(true); setError(null); try { const res = await fetch("/api/oauth/iflow/cookie", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ cookie: cookie.trim() }), }); const data = await res.json(); if (!res.ok) { throw new Error(data.error || "Authentication failed"); } setSuccess(true); setTimeout(() => { onSuccess?.(); handleClose(); }, 1500); } catch (err) { setError(err.message); } finally { setLoading(false); } }; const handleClose = () => { setCookie(""); setError(null); setSuccess(false); onClose?.(); }; return (
{success ? (

Authentication Successful!

Fresh API key obtained

) : ( <>

To get a fresh API key, paste your browser cookie from{" "} platform.iflow.cn

How to get cookie:

  1. Open platform.iflow.cn in your browser
  2. Login to your account
  3. Open DevTools (F12) → Application/Storage → Cookies
  4. Copy the entire cookie string (must include BXAuth)
  5. Paste it below