Rip out sessions, they don't work cross domain. Rely on information received previously. Sessions will not extend past the current browser session most likely.

This commit is contained in:
zontreck 2024-05-16 13:06:24 -07:00
parent a490412f6b
commit 75de51ec14
7 changed files with 157 additions and 167 deletions

View file

@ -92,18 +92,10 @@ class C2SPerformSetupPacket implements IPacket {
class S2CPongPacket implements IPacket { class S2CPongPacket implements IPacket {
final String PSK; final String PSK;
final bool authorized; final bool authorized;
final String user;
final String displayName;
final bool loggedIn;
final int totalUsers; final int totalUsers;
S2CPongPacket( S2CPongPacket(
{required this.PSK, {required this.PSK, required this.authorized, required this.totalUsers});
required this.authorized,
required this.user,
required this.displayName,
required this.loggedIn,
required this.totalUsers});
@override @override
String encode() { String encode() {
@ -111,9 +103,6 @@ class S2CPongPacket implements IPacket {
"psk": PSK, "psk": PSK,
"authorized": authorized, "authorized": authorized,
"type": getType(), "type": getType(),
"login": loggedIn,
"user": user,
"display_name": displayName,
"user_count": totalUsers "user_count": totalUsers
}); });
} }
@ -134,9 +123,6 @@ class S2CPongPacket implements IPacket {
return S2CPongPacket( return S2CPongPacket(
PSK: map['psk'] as String, PSK: map['psk'] as String,
authorized: map['authorized'] as bool, authorized: map['authorized'] as bool,
user: map['user'] as String,
displayName: map['display_name'] as String,
loggedIn: map['login'] as bool,
totalUsers: map['user_count'] as int); totalUsers: map['user_count'] as int);
} }
} }

View file

@ -64,6 +64,8 @@ class OpenSimPageState extends State<OpenSimPage> {
String clientPSK = ""; String clientPSK = "";
String PSKHash = ""; String PSKHash = "";
bool polling = true;
@override @override
Future<void> didChangeDependencies() async { Future<void> didChangeDependencies() async {
var reply = await settings.sendPacketToEndpoint( var reply = await settings.sendPacketToEndpoint(
@ -85,7 +87,9 @@ class OpenSimPageState extends State<OpenSimPage> {
} }
settings.totalGridUsers = pong.totalUsers; settings.totalGridUsers = pong.totalUsers;
setState(() {}); setState(() {
polling = false;
});
} }
@override @override
@ -105,7 +109,16 @@ class OpenSimPageState extends State<OpenSimPage> {
Padding( Padding(
padding: const EdgeInsets.all(8), padding: const EdgeInsets.all(8),
child: SingleChildScrollView( child: SingleChildScrollView(
child: settings.OpenSimSetupCompleted child: polling
? Column(
children: [
ListTile(
title: Text("Please wait... downloading content"),
tileColor: Constants.TITLEBAR_COLOR,
)
],
)
: settings.OpenSimSetupCompleted
? Column( ? Column(
children: [ children: [
ListTile( ListTile(
@ -129,8 +142,10 @@ class OpenSimPageState extends State<OpenSimPage> {
settings.loggedIn = false; settings.loggedIn = false;
settings.currentUser = null; settings.currentUser = null;
await settings.sendPacketToEndpoint( await settings
APIEndpoint.Logout, NullPacket()); .sendPacketToEndpoint(
APIEndpoint.Logout,
NullPacket());
didChangeDependencies(); didChangeDependencies();
}, },
@ -179,8 +194,8 @@ class OpenSimPageState extends State<OpenSimPage> {
title: const Text("Database Username"), title: const Text("Database Username"),
subtitle: TextField( subtitle: TextField(
controller: databaseUsernameController, controller: databaseUsernameController,
decoration: decoration: const InputDecoration(
const InputDecoration(hintText: "Username"), hintText: "Username"),
), ),
), ),
ListTile( ListTile(
@ -217,8 +232,8 @@ class OpenSimPageState extends State<OpenSimPage> {
), ),
ElevatedButton( ElevatedButton(
onPressed: () async { onPressed: () async {
PSKHash = PSKHash = await settings
await settings.hashPSK(PSKController.text); .hashPSK(PSKController.text);
clientPSK = await settings.createDerivedPSK( clientPSK = await settings.createDerivedPSK(
PSKHash, "client"); PSKHash, "client");
@ -228,8 +243,10 @@ class OpenSimPageState extends State<OpenSimPage> {
PSK: PSKHash, PSK: PSKHash,
ClientPSK: clientPSK, ClientPSK: clientPSK,
host: databaseHostController.text, host: databaseHostController.text,
user: databaseUsernameController.text, user:
pass: databasePasswordController.text, databaseUsernameController.text,
pass:
databasePasswordController.text,
db: databaseNameController.text); db: databaseNameController.text);
var responsePacket = var responsePacket =

View file

@ -73,6 +73,4 @@ function gen_uuid()
mt_rand(0, 0xffff) mt_rand(0, 0xffff)
); );
} }
session_start();
?> ?>

View file

@ -34,7 +34,6 @@ if($clientKey == CLIENTPSK) {
if(md5($password.":" . $pwSalt) == $pwHash) { if(md5($password.":" . $pwSalt) == $pwHash) {
// Login Success // Login Success
$_SESSION['login'] = "1";
$id = $row['UUID']; $id = $row['UUID'];
$first = $row['FirstName']; $first = $row['FirstName'];
$last = $row['LastName']; $last = $row['LastName'];

View file

@ -2,7 +2,7 @@
if(!defined("COMMON")) if(!defined("COMMON"))
require ("Common.php"); require ("Common.php");
session_destroy(); // Edit database?
die(json_encode(array( die(json_encode(array(
"done" => true, "done" => true,

View file

@ -20,13 +20,6 @@ if(!defined("CLIENTPSK")) {
// Authorized. Send the PSK value to the client // Authorized. Send the PSK value to the client
$allow=true; $allow=true;
$psk = PSK; $psk = PSK;
// Check session
if(isset($_SESSION['login'])) {
$logged_in = true;
$user = $_SESSION['user'];
$display_name = $_SESSION['display_name'];
}
}else { }else {
$allow=false; $allow=false;
} }
@ -42,10 +35,7 @@ if(!defined("CLIENTPSK")) {
$ret = array( $ret = array(
"type" => "S2CPong", "type" => "S2CPong",
"authorized" => $allow, "authorized" => $allow,
"user" => $user,
"display_name" => $display_name,
"psk" => $psk, "psk" => $psk,
"login" => $logged_in,
"user_count" => $totalUsers "user_count" => $totalUsers
); );