Skip to content

Commit 41fff99

Browse files
committed
refactor(a2): regenerate CSRF token after successful login
1 parent a88ccce commit 41fff99

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

a2/resources.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,14 @@ function login(&$request, &$response, &$db, &$pdo)
350350
$sessionid = $request->cookie("sessionid");
351351
$expires = new DateTime("+5 minutes");
352352
$expires = $expires->format(DateTimeInterface::ISO8601);
353+
$csrf_token = trim(get_guid(), '{}');
354+
355+
$db->update_web_session_metadata_by_sessionid->execute(array(
356+
'metadata' => $csrf_token,
357+
'sessionid' => $sessionid,
358+
));
359+
360+
$response->set_token("csrf_token", $csrf_token);
353361

354362
$db->create_or_update_user_session_info->execute(array(
355363
'sessionid' => $sessionid,

a2/server.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ public function __call($method, $arguments)
5757
// preflight
5858
$db->get_web_session_info_by_sessionid = $pdo->prepare("SELECT * FROM web_session WHERE sessionid = :sessionid");
5959
$db->update_web_session_info_by_sessionid = $pdo->prepare("UPDATE web_session SET expires = :expires WHERE sessionid = :sessionid");
60+
$db->update_web_session_metadata_by_sessionid = $pdo->prepare("UPDATE web_session SET metadata = :metadata WHERE sessionid = :sessionid");
6061
$db->create_web_session_info = $pdo->prepare("INSERT INTO web_session (sessionid, expires, metadata) VALUES (:sessionid, :expires, :metadata)");
6162

6263
// signup

0 commit comments

Comments
 (0)