Ich habe versucht, meine Anmeldeinformationen zu verwenden, und erwartete, dass die Websocket -Verbindung meine Sitzung erkennen und mir erlauben kann, in Verbindung zu bleiben. Selbst nach einer erfolgreichen Authentifizierung sagt der Server immer noch, dass ich mich nicht angemeldet habe und mich mit dem Fehler "abgelehnt - fehlendes Token!" trenne. Ich habe auch überprüft, ob mein Zugriffstoken generiert wird, aber es scheint, dass der Server ihn in der WebSocket -Verbindung nicht richtig erkennt. Ein fehlender Token, obwohl ich mich erfolgreich anmelde. Nach dem Anmelden sagt der Server immer noch, dass ich nicht authentifiziert bin und mich trenne. In der Fehlermeldung heißt es: "Verbindung abgelehnt - fehlendes Token!" Obwohl meine Anmeldedetails und meine Zugriffs -Token gültig sind. Das Problem kann mit Token -Validierung, Sitzungsbearbeitung oder der Art und Weise, wie das Token in der WebSocket -Verbindung übergeben wird Um meine Sitzung zu erkennen und mir zu ermöglichen, in Verbindung zu bleiben. Selbst nach einer erfolgreichen Authentifizierung sagt der Server immer noch, dass ich mich nicht angemeldet habe und mich mit dem Fehler "abgelehnt - fehlendes Token!" trenne. Ich habe auch überprüft, ob mein Zugriffstoken generiert wird, aber es scheint, dass der Server ihn in der WebSocket -Verbindung nicht ordnungsgemäß erkennt. Tasten)
❯ Änderungsmodus
Kennwort ändern
Präfix ändern
Kick -Player
Ban ipadress
ungeban ipadress
Server neu starten odrzucono połączenie Websocket - Użytkownik Niezalogowany! Ken_type: ' Bearer ',
access_token:' uazocewwk7jzbza6pdshv3mmnin2 ',
expires_in: 604800,
refresh_token:' y6kpqzi2qBoql8bzqhditn9lxlxlxltycT ',
accope'
ask. Daten: {
id: '118672751674334516',
Benutzername: 'xx_ksgaming_xx',
avatar: '6d761d8ef76fdd9e799634f49d30 />:
Discriminators' 0>,
: ,
Flags: 128,
Banner: Null,
Accent_Color: Null,
global_name: '! null,
clan: null,
primär_guild: null,
mfa_enabled: false,
Locale: 'en-gb',
premium_type: 0
} odrzucono połączenie webocket - użytkownik niezalogowany! < /p>
Hier ist Code < /p>
Ich habe versucht, meine Anmeldeinformationen zu verwenden, und erwartete, dass die Websocket -Verbindung meine Sitzung erkennen und mir erlauben kann, in Verbindung zu bleiben. Selbst nach einer erfolgreichen Authentifizierung sagt der Server immer noch, dass ich mich nicht angemeldet habe und mich mit dem Fehler [b] "abgelehnt - fehlendes Token!" [/b] trenne. Ich habe auch überprüft, ob mein Zugriffstoken generiert wird, aber es scheint, dass der Server ihn in der WebSocket -Verbindung nicht richtig erkennt. Ein fehlender Token, obwohl ich mich erfolgreich anmelde. Nach dem Anmelden sagt der Server immer noch, dass ich nicht authentifiziert bin und mich trenne. In der Fehlermeldung heißt es: [b] "Verbindung abgelehnt - fehlendes Token!" [/b] Obwohl meine Anmeldedetails und meine Zugriffs -Token gültig sind. Das [url=viewtopic.php?t=11587]Problem[/url] kann mit Token -Validierung, Sitzungsbearbeitung oder der Art und Weise, wie das Token in der WebSocket -Verbindung übergeben wird Um meine Sitzung zu erkennen und mir zu ermöglichen, in Verbindung zu bleiben. Selbst nach einer erfolgreichen Authentifizierung sagt der Server immer noch, dass ich mich nicht angemeldet habe und mich mit dem Fehler [b] "abgelehnt - fehlendes Token!" [/b] trenne. Ich habe auch überprüft, ob mein Zugriffstoken generiert wird, aber es scheint, dass der Server ihn in der WebSocket -Verbindung nicht ordnungsgemäß erkennt. Tasten) ❯ Änderungsmodus Kennwort ändern Präfix ändern Kick -Player Ban ipadress ungeban ipadress Server neu starten ❌ odrzucono połączenie Websocket - Użytkownik Niezalogowany! Ken_type: ' Bearer ', access_token:' uazocewwk7jzbza6pdshv3mmnin2 ', expires_in: 604800, refresh_token:' y6kpqzi2qBoql8bzqhditn9lxlxlxltycT ', accope' ask. Daten: { id: '118672751674334516', Benutzername: 'xx_ksgaming_xx', avatar: '6d761d8ef76fdd9e799634f49d30 />: Discriminators' 0>, : , Flags: 128, Banner: Null, Accent_Color: Null, global_name: '! null, clan: null, primär_guild: null, mfa_enabled: false, Locale: 'en-gb', premium_type: 0 } ❌ odrzucono połączenie webocket - użytkownik niezalogowany! < /p> Hier ist Code < /p> [code]require("dotenv").config() const WebSocket = require("ws") const msgpack = require("msgpack-lite") const http = require("http") const url = require("url") const inquirer = require("inquirer") const fetch = require("node-fetch") const package = require("./package.json") const { exec } = require('child_process'); var fs = require('fs'); var path = require('path'); const express = require("express") const session = require("express-session"); const marked = require('marked'); const sessions = {}; // Przechowywanie sesji w zależności od adresu IP const { URLSearchParams } = require('url') const app = express() const SESSIONS = {}; // Przechowywanie sesji użytkowników
// Sprawdzenie, czy ścieżka to /server if (pathname === "/server") { const userId = getSession(request); // Pobierz dane sesji
// Jeśli sesja nie istnieje, połączenie jest odrzucane if (!userId) { console.log("❌ Odrzucono połączenie WebSocket - użytkownik niezalogowany!"); return socket.destroy(); // Zniszcz socket, jeśli nie ma sesji }
// Obsługuje upgrade WebSocket server.handleUpgrade(request, socket, head, (ws) => { server.emit("connection", ws, request); }); } else { // Jeśli ścieżka nie jest poprawna, połączenie jest odrzucane socket.destroy(); } });
// Funkcja do pobierania sesji z ciasteczka function getSession(request) { const cookieHeader = request.headers.cookie; if (!cookieHeader) return null;
// Parse cookies const cookies = Object.fromEntries(cookieHeader.split("; ").map(c => c.split("="))); return SESSIONS[cookies.session] || null; // Zwraca sesję, jeśli istnieje }
if (command.command === "Change Mode") { const mode = await inquirer.prompt({ name: "mode", type: "list", message: "Select mode", choices: ["NORMAL", "SANDBOX", "ARENA", "HOCKEY"] }); const modeType = [["HOCKEY"], ["SANDBOX", "NORMAL"], ["ARENA"]]; function areInSameGroup(arg1, arg2, arg3) { for (const group of modeType) { if (group.includes(arg1) && group.includes(arg2) && group.includes(arg3)) { return true; } } return false; }
if (areInSameGroup(MODE, mode.mode)) { MODE = mode.mode; } else { const restart = await inquirer.prompt({ name: "restart", type: "confirm", message: "Are you sure you want to restart server?" }); if (restart.restart) { MODE = mode.mode; setupServer(); } } } else if (command.command === "Change Password") { const password = await inquirer.prompt({ name: "password", type: "input", message: "Input password:" }); PASSWORD = password.password; } else if (command.command === "Change Prefix") { const prefix = await inquirer.prompt({ name: "prefix", type: "list", message: "Select prefix", choices: ["!", "?", "/", "\\", "`", "'", '"', ":", "|", ";", "", ",", ".", "~"] }); PREFIX = prefix.prefix; } else if (command.command === "Kick Player") { const sid = await inquirer.prompt({ name: "sid", type: "input", message: "Input player sid:" }); const sidNumber = Number(sid.sid); if (!isNaN(sidNumber)) { for (let i = 0; i < players.length; i++) { let tmpPlayer = players[i]; if (tmpPlayer.sid === sidNumber) { connection[tmpPlayer.id].close(); break; } } } } else if (command.command === "Restart Server") { const restart = await inquirer.prompt({ name: "restart", type: "confirm", message: "Are you sure you want to restart server?" }); if (restart.restart) { setupServer(); } } else if (command.command === "Ban IP") { const ipInput = await inquirer.prompt({ name: "ip", type: "input", message: "Enter IP address to ban:" }); const bannedIp = ipInput.ip;
if (!bannedIp) { console.log("Invalid IP address."); } else { let bannedIps = []; if (fs.existsSync(banIps)) { const fileData = fs.readFileSync(banIps, 'utf8'); try { bannedIps = JSON.parse(fileData); } catch (error) { console.log("Error parsing BannedIps.json, resetting file."); } }
if (!bannedIps.includes(bannedIp)) { bannedIps.push(bannedIp); fs.writeFileSync(banIps, JSON.stringify(bannedIps, null, 2)); console.log(`IP ${bannedIp} has been banned.`); } else { console.log("This IP is already banned."); }
} } else if (command.command === "Unban IPAdress") { const ipInput = await inquirer.prompt({ name: "ip", type: "input", message: "Enter IP address to unban:" }); const unbanIp = ipInput.ip;
if (!unbanIp) { console.log("Invalid IP address."); } else { let bannedIps = []; if (fs.existsSync(banIps)) { bannedIps = JSON.parse(fs.readFileSync(banIps, 'utf8')); }
if (bannedIps.includes(unbanIp)) { bannedIps = bannedIps.filter(ip => ip !== unbanIp); fs.writeFileSync(banIps, JSON.stringify(bannedIps, null, 2)); console.log(`IP ${unbanIp} has been unbanned.`); } else { console.log("This IP is not in the banned list."); } } } commandStart(); }
Ich möchte die Discord Rich Presence-Integration zu einer C#-Anwendung hinzufügen. Gemäß der Dokumentation von Discord habe ich deren offizielles Discord Game SDK ausgewählt, das über C#-Bindungen...