fix(multiplayer): harden join expiry validation

This commit is contained in:
Josh Creek
2026-09-01 22:30:36 +01:00
parent 82691eaf80
commit 4d8638e62f
3 changed files with 9 additions and 0 deletions
+3
View File
@@ -11,6 +11,7 @@ extends Node
const NetCodec = preload("res://scripts/net_codec.gd")
const SimConstants = preload("res://scripts/sim_constants.gd")
const AssignmentState = preload("res://scripts/assignment_state.gd")
signal player_joined(peer_id: int, player_name: String)
signal player_left(peer_id: int)
@@ -342,6 +343,8 @@ func _valid_join_authorisation(token: String) -> bool:
return false
var protocol := str(claims.get("Protocol", ""))
var expires_at := str(claims.get("ExpiresAt", ""))
if not AssignmentState.is_valid_expiry_timestamp(expires_at):
return false
var expiry := Time.get_unix_time_from_datetime_string(expires_at)
if not _join_signing_key.is_empty():
var signature_token := str(envelope["Signature"])