Liaविकासकर्ता

मार्गदर्शन

ज्ञात करें कि कौन सा खिलाड़ी आपके सर्वर को कॉल कर रहा है। पृष्ठ से एक सत्र टोकन भेजें, इसे Lia एक बार सत्यापित करें, फिर अपने स्वयं के सत्र रखें।

कोई भी आपके सर्वर को एक मांग भेज सकता है जो कहता है "I'खिलाड़ी p_3f9c…". इसलिए पेज एक भेजता है सत्र टोकन तेज जो Lia ने हस्ताक्षर किया है, और आपका सर्वर Lia के बारे में पूछता है जिसका यह है।

#अपने पृष्ठ में

अपनी पहली अनुरोध के साथ टोकन भेजें, या कुछ भी महत्वपूर्ण हो। टोकन 15 मिनट तक रहते हैं; Lia.session() हमेशा एक ताजा वापस करता है।

api.js
export async function api(path, body) {
  const { session } = await Lia.session();
  const res = await fetch(path, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({ ...body, session }),
  });
  if (!res.ok) throw new Error((await res.json()).error);
  return res.json();
}

#अपने सर्वर पर

server.js (Node.js)
const LIA = "https://api.lialabs.org/api/apps/v1";

async function playerFrom(session) {
  if (typeof session !== "string") return null;
  const res = await fetch(`${LIA}/session/verify`, {
    method: "POST",
    headers: { Authorization: `Bearer ${process.env.LIA_KEY}`, "Content-Type": "application/json" },
    body: JSON.stringify({ session }),
  });
  if (!res.ok) throw new Error(`Lia answered ${res.status}`); // a 401 means your key is wrong
  const result = await res.json();
  return result.valid ? result.playerId : null;
}

app.post("/api/save", async (req, res) => {
  const playerId = await playerFrom(req.body.session);
  if (!playerId) return res.status(401).json({ error: "session" });
  await db.save(playerId, req.body.progress);
  res.json({ ok: true });
});

समान रूप से एक Cloudflare वर्कर में:

worker.js
export default {
  async fetch(request, env) {
    const body = await request.json();
    const check = await fetch("https://api.lialabs.org/api/apps/v1/session/verify", {
      method: "POST",
      headers: { Authorization: `Bearer ${env.LIA_KEY}`, "Content-Type": "application/json" },
      body: JSON.stringify({ session: body.session }),
    }).then((r) => r.json());
    if (!check.valid) return Response.json({ error: "session" }, { status: 401 });
    return Response.json({ hello: check.playerId });
  },
};

#अपने स्वयं के सत्र रखें

हर अनुरोध की पुष्टि काम करती है, लेकिन यह'से एक चक्कर बाजार Lia प्रत्येक बार। एक एप्लिकेशन के लिए जो अपने सर्वर से बहुत बार बात करता है, एक बार सत्यापित करें और फिर अपने आप का उपयोग करें:

  1. पृष्ठ लॉग इन करता हैइसे भेजता है Lia.init() के लिए /api/login.
  2. आपके सर्वर टोकन को Lia के साथ जांचता हैयह खिलाड़ी आईडी प्राप्त करता है, और उस खिलाड़ी के लिए आपके अपने कुकी या टोकन सेट करता है।
  3. सभी बाद के उपयोग के लिए आपकाजब तक यह समाप्त नहीं हो जाता; फिर पृष्ठ फिर से लॉग इन करने के लिए एक ताजा Lia सत्र भेजता है।

आपके पृष्ठ द्वारा सेट किए गए कुकीज'अपने साइट काम करती है Lia के अंदर'के फ्रेम वेब के रूप में (किसी अन्य साइट के कुकीज फोन द्वारा ब्लॉक कर दिए जा सकते हैं, इसलिए अपने API को एक ही साइट पर रखें या बजाय एक टोकन भेजें)। एक WebSocket के लिए, पहले संदेश में टोकन की पुष्टि करें (या संयोजन'के प्रश्न स्ट्रिंग) के पहले खेलाड़ी के साथ कुछ भी जुड़ने से पहले।

#करने के लिए जांचें

  • valid सच है। एक टोकन जो'के लिए अन्य एप्स, अन्य मोड से या इसके अंत के बाद नहीं'तेज वैध।
  • मोड वह है जिसकी आप उम्मीद करते हैं। आपके लाइव कुंजी के साथ आप'आपको केवल लाइव सत्र दिखाई देंगे, लेकिन अगर आपके सर्वर दोनों कुंजियां रखते हैं, तो चेक करें mode.
  • उपयोग करें playerId से Lia, कभी पेज द्वारा भेजा गया एक नहीं।
  • अपने सर्वर पर अपना कुंजी रखें। कभी भी इसे पृष्ठ पर भेजें, एक क्षण के लिए भी नहीं।

स्वचालित अनुवाद। अंग्रेजी सत्य का स्रोत है। अंग्रेजी में पढ़ें

किसी भी पृष्ठ, विधि और एंडपॉइंट के लिए खोजने के लिए प्रकार।