|
Тема
|
Въпросче за логин, търся мнение
|
|
Автор |
BeнeлинPaнreлoв (<!>) |
Публикувано | 12.06.09 09:33 |
|
Имам едно логинче на потребители в една система. До тук добре, въпроса е как да правя проверка дали даден потребител е логнат в момента в системата и да не давам на друг да влиза с неговите данни.
Пример:
двама пичове знаят паролата и юзера за логин. Единия се логва на единия комп към системата, другия пробва, но му се дава съобщение че вече е вътре и не може да се логне.
Лесно може да си запиша 1 поленце в базата и да проверявам дали е 1чка и при изход да го нулирам, но като затвори браузера от х-а ще му се затрие сесията и следващия път ще му каже че вече е логнат, а няма да е.
Не искам и да ограничавам ИП-тата, защото до системата ще има достъп от всякъде.
Сещам се само за 1 вариант, но е много дървен - при фал, т.е. излязъл е затваряйки браузера от друг вход изтрива сесиите и ако има някой логнат наистина в момента го изхвърля.
| |
Тема
|
Re: Въпросче за логин, търся мнение
[re: BeнeлинPaнreлoв]
|
|
Автор |
wiz (100 тонa змей) |
Публикувано | 12.06.09 14:27 |
|
ми пробвай например как са го направили yahoo или друг голям сайт - мисля изключва първия при логване на втори
също може да сложиш time out на сесията по избор...
No pain, no gain
| |
|
Когато бях още начинаещ бях направил парсер за сесийни файлове за това нещо.
Решението е с писане в база, само че не просто единичка а и с това кога последно е кликнал. Срещу всяка единичка можеш да добавиш и един timestamp, а на определено време cron проверява дали няма сесии, последно обновени пред 30 мин. да речем и да ги трие.
Може и по-фьешън да го направиш с едно аяксче, като във Фейсбук (или май ей-джаксче, както е редно да се произнася). През 30 сек. то праща една единичка, за да знае сървъра, че усера цъка нещо, а ако пропусне се влиза в алгоритъм да бъде чакан примерно 5 мин да поднови единичките или му се трие сесията.
Дано съм ти помогнал, защото то на думи всичко е много лесно.
| |
|
сейшън ид и ласт екшън вместо 1, всеки нов сейшън на този потребител отрязва предишния. май така съм правил преди десетина години
---------
целунете ми чакрата!
| |
|
|
|
|