Panduan
Verifikasi di server Anda
Salin halaman
Kenali pemain yang memanggil server Anda. Kirimkan token sesi dari halaman, verifikasi dengan Lia sekali, lalu jaga sesi Anda sendiri.
Siapa pun dapat mengirimkan permintaan ke server Anda yang berisi "I'pemain p_3f9c…". Jadi halaman mengirimkan sebuah token sesi yang Lia tanda tangan, dan server Anda bertanya Lia milik siapa.
#Di halaman Anda
Kirim token bersama permintaan pertama Anda, atau dengan apa pun yang penting. Token berlaku selama 15 menit; Lia.session() selalu memberikan yang baru.
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();
}#Di server Anda
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 });
});Sama dalam 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 });
},
};#Jaga sesi Anda sendiri.
Memverifikasi setiap permintaan bekerja, tapi itu's perjalanan pulang pergi ke Lia setiap kali. Untuk aplikasi yang sering berbicara dengan server-nya, verifikasi sekali dan kemudian gunakan sendiri:
- Halaman ini masukIni mengirimkan token dari
Lia.init()ke/api/login. - Server Anda memverifikasi dengan LiaItu mendapatkan id pemain, dan mengatur cookie atau token Anda sendiri untuk pemain tersebut.
- Semua yang berikutnya menggunakan milik AndaHingga berakhir; kemudian halaman mengirim sesi Lia yang segar untuk masuk kembali.
Kuki yang diatur oleh halaman Anda'pekerjaan situs miliknya di dalam Lia'frame seperti di web (kuki untuk situs lain mungkin diblokir oleh ponsel, jadi pertahankan API di situs yang sama atau kirim token alih-alih). Untuk WebSocket, verifikasi token dalam pesan pertama (atau koneksi'string kueri) sebelum bergabung dengan pemain apa pun.
#Pemeriksaan yang perlu dilakukan
validbenar. Sebuah token yang'untuk aplikasi lain, dari mode lain atau setelah berakhirnya'sah.- Mode adalah yang Anda harapkan. Dengan kunci hidup Anda'hanya akan melihat sesi langsung, tetapi jika server Anda menyimpan kedua kunci, periksa
mode. - Gunakan
playerIddari Lia, tidak pernah satu yang dikirimkan halaman. - Jaga kunci Anda di server Anda. Jangan pernah mengirimkannya ke halaman, bahkan hanya sejenak.
Diterjemahkan otomatis. Bahasa Inggris adalah sumber kebenaran. Baca dalam Bahasa Inggris