Rehberler
Sunucunuzda doğrulayın
Sayfayı kopyala
Sunucunuza kimin çağrı yaptığını bilin. Sayfadan bir oturum anahtarı gönderin, Lia ile bir kez doğrulayın, ardından kendi oturumunuzu koruyun.
Herhangi biri, sunucunuza şunu söyleyen bir istek gönderebilir "I'oyuncu p_3f9c…". Böylece sayfa bir oto oturum belirteci Lia tarafından imzalanan ve sunucunuz Lia'in kim olduğu sorar.
#Sayfanızda
Token'ı ilk isteğinize ekleyin, veya önemli her şeyle. Token'lar 15 dakika sürecek; Lia.session() her zaman yeni bir tane verir.
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();
}#Sunucunuzda
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 });
});Aynı Cloudflare Worker 'da:
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 });
},
};#Kendi oturumunuzu koruyun
Her istek doğrulanır, ama bu's her seferinde Lia'a bir tur. Bir uygulama, sunucusuyla çok konuşuyorsa, bir kez doğrulayın ve sonra kendi kullanın:
- Sayfa oturum açarToken'ı gönderir
Lia.init()için/api/login. - Sunucunuz Lia ile doğrularO oyuncu kimliğini alır ve o oyuncu için kendi çerezinizi veya belirtecinizi ayarlar.
- Sonraki her şey seninSona erene kadar; sonra sayfa tekrar oturum açmak için yeni bir Lia oturumu gönderir.
Sayfanız tarafından ayarlanan çerezler'kendi site çalışması Lia içinde'web'deki gibi bir çerçeve (başka bir site için çerezler telefon tarafından engellenebilir, bu yüzden API aynı sitenin üzerinde tutun veya token gönderin). WebSocket için, ilk mesajda tokeni doğrulayın (veya bağlantı'oyuncuyu hiçbir şeye bağlamadan önce sorgu dizesi) ile.
#Yapmamız gereken kontroller
validdoğrudur. Bir token ile'başka bir uygulama için, diğer moddan veya sona erdiğinden sonra değil'geçerli değil.- Mod, beklediğiniz gibi. Canlı anahtarınızla'sadece canlı oturumları göreceksiniz, ancak sunucunuz her iki anahtarı da saklıyorsa, kontrol edin
mode. - Kullan
playerIdLia den, asla sayfa tarafından gönderilen. - Anahtarınızı sunucunuzda tutun. Bir an için bile sayfaya göndermeyin.
Otomatik çeviri. İngilizce, doğru kaynaktır. İngilizce olarak oku