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

View file

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

View file

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

View file

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

View file

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

View file

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