Lad os sige, at databasetabellens navn for vedvarende cookie er pcookies med følgende kolonner:
- cookie_id (CHAR)
- bruger-id (INT)
- udløb (DATETIME)
- salt (CHAR)
Trin til oprettelse af cookies:
- Efter vellykket login skal du oprette en cookie-record i databasen under et unikt id. Du kan generere det ved hash_hmac('sha512', $token, $salt) hvor $token=uniqid($user_id, TRUE) og $salt=md5(mt_rand()).
- Gem 'bruger-id', 'udløbstid' og 'salt' sammen med 'cookie-id'et' i databasen.
- Gem 'cookie-id' og 'token' i cookie.
Godkendelsestrin:
- Hvis der er fundet en vedvarende cookie, skal du først kontrollere, om posten er tilgængelig i databasen eller ej.
- Hvis posten er tilgængelig, skal du kontrollere, om cookien udløber eller ej.
- Hvis cookien ikke udløber, så valider cookie-id'et af $cookie_id ==hash_hmac('sha512',$token_from_cookie,$salt_from_db).
- Når cookien er valideret, skal du slette den fra databasen og oprette en ny cookie i henhold til ovenstående cookieoprettelsestrin.
- Hvis cookien findes som ugyldig, skal du rydde cookien fra enheden og slette alle andre cookie-registreringer for brugeren fra databasen, bemærke brugen om et tyveriforsøg og fortsætte til manuel login-proces.
Bemærkninger:
- Når sessionen er tilgængelig, ignorer kontrol af cookie.
- Når du har logget ud, skal du rydde cookien sammen med databaseregistreringen.
- Tillad aldrig brugere at udføre følsomme anmodninger som ændring af adgangskode eller se kreditkortoplysninger fra et vedvarende cookie-login. Kald adgangskode til login og tilføj et flag i sessionen for at tillade alle videre handlinger.