คำนิยาม
Cookie storage
ตัวเชื่อมเก็บสถานะวอลเล็ตของ wagmi บันทึกสถานะลงคุกกี้เพื่อรองรับ SSR
Cookie storage
ตัวเชื่อมเก็บสถานะของ wagmi ที่บันทึกสถานะวอลเล็ตลงในคุกกี้เพื่อรองรับ SSR
In context
บน PolyArb เราใช้การจัดเก็บแบบคุกกี้เพื่อให้สถานะวอลเล็ตคงอยู่ระหว่างการเรนเดอร์ฝั่งเซิร์ฟเวอร์ เมื่อผู้ใช้เชื่อมต่อวอลเล็ตผ่าน connector เช่น MetaMask หรือ Gnosis Safe โดยปกติ wagmi จะเก็บสถานะเซสชันในที่เก็บฝั่งไคลเอนต์ ตัวเชื่อมคุกกี้จะสะท้อนสถานะวอลเล็ตที่จำเป็นเท่านั้น (เช่น connector ที่ใช้งานอยู่และที่อยู่) ลงในคุกกี้ HTTP เพื่อให้หน้าที่เรนเดอร์บนเซิร์ฟเวอร์สามารถอ่านและแสดง UI ที่ขึ้นกับบัญชีในระหว่างการโหลดหน้าเริ่มต้นได้ วิธีนี้ช่วยให้รู้สึกถึงประสิทธิภาพที่ดีขึ้นและหลีกเลี่ยงการกระพริบของ UI ที่ไม่เชื่อมต่อเมื่อแอปของคุณทำการ hydrate
How it works (high level)
- ระหว่างเซสชันฝั่งไคลเอนต์ wagmi จะเขียนคีย์ที่เลือกลงในตัวเชื่อมคุกกี้แทนหรือเพิ่มเติมจาก localStorage
- โค้ดการเรนเดอร์ฝั่งเซิร์ฟเวอร์สามารถอ่านคุกกี้เหล่านั้นและตัดสินใจได้ว่าจะเรนเดอร์คอมโพเนนต์แบบล็อกอิน, ยอดคงเหลือที่มาสก์แล้ว, หรือ UI เฉพาะ connector หรือไม่
- คุกกี้ควรเก็บเฉพาะสถานะที่ไม่ละเอียดอ่อนและน้อยที่สุดเท่านั้น (เช่น id ของ connector, ที่อยู่ที่ตัดทอนแล้ว) ห้ามเก็บ private keys หรือ approval signatures ในคุกกี้เป็นอันขาด
Implementation notes
- การจัดเก็บแบบคุกกี้เป็นรูปแบบ adapter สำหรับ wagmi; API ที่แน่นอนขึ้นกับเวอร์ชันของ wagmi และเฟรมเวิร์กของคุณ (Next.js, Remix ฯลฯ) ให้ใช้ attribute ของคุกกี้ที่ปลอดภัย เช่น secure, httpOnly (เมื่อเหมาะสม), SameSite และ path ให้สอดคล้องกับโมเดลความปลอดภัยของแอปของคุณ
- เนื่องจาก Polymarket/PolyArb ใช้ Polygon และ pUSD สถานะวอลเล็ตที่นี่เป็นเพียงสถานะ UX เท่านั้น การเซ็นและการดำเนินการบนเชนยังคงเกิดขึ้นที่ฝั่งไคลเอนต์ผ่าน connector ของวอลเล็ต
- เคารพข้อจำกัดทางภูมิศาสตร์ของ Polymarket และอย่าพยายามเลี่ยงด้วยเทคนิคคุกกี้ อย่าเก็บข้อมูลที่เกี่ยวกับ KYC ในคุกกี้
See also
- /glossary/CLOB
- /glossary/Relayer
- /glossary/pUSD