Ik heb een webapplicatie waar je kunt inloggen en (duh) uitloggen.
Wat eisen over het uitloggen:
Dat werkt ongeveer wel, dat wil zeggen, meestal doet het precies wat het moet doen. Maar soms wordt er pas uitgelogd na een tweede (of derde) keer klikken op de link. Da's natuurlijk niet de bedoeling.
Wat eisen over het uitloggen:
- CSRF-proof (dus niet uitloggen via een 'plaatje' in dit topic)
- Na het uitloggen wil ik een nieuw sessie-is, zodat als mijn cookie gestolen is, en ik daarom uitlog en daarna weer inlog, dat ik dan niet opnieuw ingelogd ben met hetzelfde sessie-id.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| <?php session_start(); if(isset($_GET['logout_token']) && isset($_SESSION['logout_token']) && $_GET['logout_token'] == $_SESSION['logout_token']) { session_unset(); session_destroy(); $_SESSION['logged_in'] = false; session_regenerate_id(true); } $_SESSION['logout_token'] = base64_encode(openssl_random_pseudo_bytes(12)); ?> <a href="/?logout_token=<?php echo $_SESSION['logout_token']; ?>">Uitloggen</a> |
Dat werkt ongeveer wel, dat wil zeggen, meestal doet het precies wat het moet doen. Maar soms wordt er pas uitgelogd na een tweede (of derde) keer klikken op de link. Da's natuurlijk niet de bedoeling.