Mga Gabay
I-verify sa iyong server
Kopya ang pahina
Alam kung anong manlalaro ang tumatawag sa iyong server. Ipadala ang isang session token mula sa pahina, i-verify ito sa Lia isang beses, pagkatapos ay panatilihin ang iyong sariling session.
Makakatanggap ang iyong server ng isang kahilingan mula sa sinuman na nagsasabi "I'manlalarong p_3f9c…". Kaya ang page ay nagpapadala ng isang session token na Lia ay nag-sign, at ang iyong server hinihingi ang Lia kung sino ito.
#Sa iyong pahina
Ipadala ang token kasama ang unang kahilingan mo, o kasama ang anumang bagay na mahalaga. Ang mga token ay naglalabas ng 15 minuto; Lia.session() laging nagbibigay ng isang bagong isa.
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();
}#Sa iyong server
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 });
});Ang pareho sa isang Cloudflare Worker:
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 });
},
};#Panatilihin ang iyong sariling session
Ang pag-verify ng bawat kahilingan ay gumagana, ngunit ito's isang round trip sa Lia bawat pagkakataon. Para sa isang app na nag-uusap sa kanyang server nang marami, i-verify ang isang beses at pagkatapos gamitin ang iyong sarili:
- Ang pahina ay nagsusulat ng pag-loginNagpapadala ng token mula
Lia.init()sa/api/login. - Ang iyong server ay kinokontrol ito sa pamamagitan ng LiaIto ay nakukuha ang player id, at itinatakda ang iyong sariling cookie o token para sa player na ito.
- Ang lahat ng susunod ay gamit moHanggang ito matapos; pagkatapos ay ang pahina nagpapadala ng isang bagong Lia sesyon para mag-log in ulit.
Mga cookie na itinakda ng iyong pahina's sariling site work sa loob ng Lia'ang frame ay tulad ng sa web (ang cookies para sa ibang site ay maaaring i-block ng telepono, kaya panatilihin ang iyong API sa parehong site o ipadala ang token sa halip). Para sa isang WebSocket, i-verify ang token sa unang mensahe (o ang koneksyon's query string) bago sumali sa manlalaro sa anumang bagay.
#Mga pagsusuri na dapat gawin
validay true. Isang token na'para sa ibang app, mula sa ibang mode o nasa huli na ito ay hindi'hindi valid.- Ang mode ay ang inaasahan mo. Gamit ang iyong live key mo'ay lamang makakakita ng mga live session, ngunit kung ang iyong server ay nagmamay-ari ng pareho ang mga pindutan, tingnan
mode. - Gamitin
playerIdmula Lia, walang sinong binigyan ng pagkakataon: ang iyong server ay natututo kung sino ang sumali nang sila ay sumali. - Panatilihin ang iyong key sa iyong server. Huwag ipadala ito sa pahina, kahit isang sandali.
Awtomatikong isinalin. Ang English ay ang source of truth. Basahin sa Ingles