Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Pytanie dot. logowania
Forum PHP.pl > Forum > Przedszkole
Michal2451
Cześć!
Tworzę sobie stronę z logowaniem.
I lepiej to logowanie zrobić na sesjach czy na ciasteczkach? I czy w ogóle na tym drugim jest możliwość zrobienia czegoś takiego.
Chociaż na kursie php jest napisane:
Cytat
Metodą nie tyle przekazywania parametrów, co przechowywania niewielkich ilości danych na komputerze oglądającego stronę (np. informacje o imieniu i nazwisku lub nazwie użytkownika w tym serwisie) jest mechanizm cookies (ciasteczka). Ciasteczka ustawione przez dany serwis dostępne są tylko dla niego i ustawiane są na jakiś czas

więc myślę, że możliwość jest.
Pozdrawiam!
d3ut3r
Ciasteczkami zbyt łatwo manipulować. Do logowania sesja nadaje się idealnie.
Szymciosek
Z ciasteczkami mozna rozwiazac problem typu zapamietaj logowanie, wiec wykorzystalbym i sesje i cookies, ale dodajac zakodowane np id+losowo generowany hash
ciekawskiii
tylko sesja+cookie, sama sesja to bezsens chyba, ze chcesz wnerwic ludzi ktorzy co chwile beda musieli sie logowac.

w cookie zamiast loginu i hasla a przynajmniej zamiast hasla trzymac jakis zahashowany kod
wNogachSpisz
Jest jeszcze jeden sposób, którego używam w kilku mniej krytycznych projektach:
Zasada działania jest następująca:
W cookie trzymasz pary "klucz" : "wartość", np:

login: admin
expire: timestamp
permissions: [insert, update, delete],

I dokładasz ostatnią parę:
checksum: checksum-hash

Checksum czyli suma kontrolna zwiera sumę kontrolną z całej zawartości cookie wcześniej posolonej.
Zmieniając sól powiedzmy raz dziennie, praktycznie nie ma szans żeby to złamać. Każda próba ręcznej zmiany zawartości cookie spowoduje błąd. Takie rozwiązanie będzie miało bardzo dużą wydajność, bo nie musisz odczytywać sesji przy każdym wywołaniu z plików tymczasowych czy bazy danych. Użytkownik dostarcza informacje o sobie samym wewnątrz nagłówka cookie przy każdym połączeniu
Michal2451
A może nakieruje mnie ktoś jak to zrobić? Mam na myśli sesje + ciasteczka, żeby nie trzeba było się logować co chwile.
pamil
Ciasteczka służą po to by przechowywać ID sesji, z odpowiednim czasem są ciasteczkami sesyjnymi (usuwane po wyłaczeniu przeglądarki/karty przeglądarki). Wszelkie sesje to po prostu kojarzenie użytkownika z zapisanymi danymi na podstawie losowego klucza, czyli ID sesji - proste.
Michal2451
W takim razie jak przykładowo zrobić opcję "Zawsze zalogowany" lub żeby wylogowywało po ustalonym czasie?
pamil
Cookie z losowym toknem przechowywanym również w bazie (nic na podstawie loginu/hasla, zwykly mt_rand()), ustawione na odpowiedni czas. Jeśli użytkownik wchodzi z tokenem, szukasz w bazie takowego i jeśli istnieje, automatycznie go logujesz.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.