Skip to content

Commit 2046554

Browse files
committed
feat(a2): implement logout backend
1 parent c92b100 commit 2046554

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

a2/resources.php

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -510,9 +510,24 @@ function load(&$request, &$response, &$db, &$pdo)
510510
*/
511511
function logout(&$request, &$response, &$db, &$pdo)
512512
{
513+
$sessionid = $request->cookie('sessionid');
514+
$get_user_session_info_by_sessionid = $db->get_user_session_info_by_sessionid;
515+
$get_user_session_info_by_sessionid->execute(array('sessionid' => $sessionid));
516+
$user_session = $get_user_session_info_by_sessionid->fetch();
517+
518+
if ($user_session && new DateTime() < date_create_from_format(DateTimeInterface::ISO8601, $user_session['expires'])) {
519+
$db->delete_user_session_info_by_sessionid->execute(array(
520+
'sessionid' => $sessionid
521+
));
522+
523+
$response->success('Successfully logged out.');
524+
log_to_console('Logged out');
525+
} else {
526+
$response->success('Please log in first.');
527+
log_to_console('User has not logged in yet.');
528+
}
529+
513530
$response->set_http_code(200);
514-
$response->success('Successfully logged out.');
515-
log_to_console('Logged out');
516531

517532
return true;
518533
}

a2/server.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,9 @@ public function __call($method, $arguments)
111111
// load
112112
$db->get_site_data_by_username_and_site = $pdo->prepare('SELECT * FROM user_safe WHERE username = :username AND site = :site');
113113

114+
// logout
115+
$db->delete_user_session_info_by_sessionid = $pdo->prepare('DELETE FROM user_session WHERE sessionid = :sessionid');
116+
114117
$request = new Request($decoded_post_body);
115118
$response = null;
116119

0 commit comments

Comments
 (0)