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 ahttps
URI - Create a token via
$token = bin2hex(openssl_random_pseudo_bytes(16));
- Save
$token
,userid
and date in a mySQL DB (only accessible by SSL) - Echo the
$token
anduserid
to the client - Save the
$token
anduserid
in html localStorage on the client - When doing an
$.ajax()
from client always senduserid
and$token
as POST - Serverside, match the provided
$token
and 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