Hướng dẫn
Xác minh trên máy chủ của bạn
Sao chép trang
Biết người chơi nào đang gọi máy chủ của bạn. Gửi một token phiên từ trang, xác minh nó với Lia một lần, sau đó giữ phiên của riêng bạn.
Bất kỳ ai cũng có thể gửi một yêu cầu đến máy chủ của bạn nói rằng "I'người chơi p_3f9c…". Vì vậy trang gửi một token phiên làm việc mà Lia đã ký, và máy chủ của bạn hỏi Lia là của ai.
#Trên trang của bạn
Gửi token cùng yêu cầu đầu tiên của bạn, hoặc với bất cứ thứ gì quan trọng. Token có hiệu lực trong 15 phút; Lia.session() luôn luôn cung cấp một cái mới.
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();
}#Trên máy chủ của bạn
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 });
});Giống như trong 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 });
},
};#Giữ phiên của bạn riêng
Xác minh mỗi yêu cầu hoạt động, nhưng nó'là một chuyến đi khứ hồi đến Lia mỗi lần. Đối với một ứng dụng thường xuyên giao tiếp với máy chủ, hãy xác minh một lần và sau đó sử dụng riêng của bạn:
- Trang đăng nhậpNó gửi token từ
Lia.init()đến/api/login. - Máy chủ của bạn xác minh nó với LiaNó nhận được id người chơi, và thiết lập cookie hoặc token của bạn cho người chơi đó.
- Tất cả những gì sau đây đều thuộc về bạnCho đến khi kết thúc; sau đó trang gửi một phiên Lia mới để đăng nhập lại.
Cookies được thiết lập bởi trang của bạn'công việc trang web riêng của bạn bên trong Lia'khung như trên web (cookies cho trang khác có thể bị điện thoại chặn, vì vậy hãy giữ API trên cùng một trang hoặc gửi một token thay vào). Đối với một WebSocket, xác minh token trong tin nhắn đầu tiên (hoặc kết nối'chuỗi truy vấn) trước khi kết nối người chơi với bất cứ thứ gì.
#Các kiểm tra cần thực hiện
validlà đúng. Một mã thông báo mà'cho một ứng dụng khác, từ chế độ khác hoặc đã hết thời gian'không hợp lệ.- Chế độ là chế độ bạn mong đợi. Với khóa live của bạn bạn'chỉ có thể thấy các buổi trực tiếp, nhưng nếu máy chủ của bạn lưu cả hai khóa, hãy kiểm tra
mode. - Sử dụng
playerIdtừ Lia, không bao giờ là cái trang gửi. - Giữ khóa của bạn trên máy chủ của bạn. Đừng bao giờ gửi nó đến trang, ngay cả trong một khoảnh khắc.
Được dịch tự động. Tiếng Anh là nguồn tin cậy. Đọc bằng tiếng Anh