To avoid having the user to login every time his session expires, I want to implement a token based authentication system.
My thought steps as follows:
- Let the user login (send name + password) via
$.ajax()to ahttpsURI - Create a token via
$token = bin2hex(openssl_random_pseudo_bytes(16)); - Save
$token,useridand date in a mySQL DB (only accessible by SSL) - Echo the
$tokenanduseridto the client - Save the
$tokenanduseridin html localStorage on the client - When doing an
$.ajax()from client always senduseridand$tokenas POST - Serverside, match the provided
$tokenand see if it is still valid (date not expired). - If it's alright, continue to deliver the requested material
This makes much sense in my eyes as an inexperienced PHP, SQL, JS developer.
But many people advise against implementing custom authentication processes, as they are often vulnerable to attacks.
I have the strong feeling, that my approach also has flaws.
Can you reveal these flaws to me?
Aucun commentaire:
Enregistrer un commentaire