|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.02.2010, 20:06 | #1 |
Пользователь
Регистрация: 28.12.2009
Сообщений: 42
|
Запрет повторной авторизации на сайте
Для авторизации используются сессии, соответственно сайт "помнит" пользователя с момента авторизации до закрытия браузера. Нужен запрет на повторную авторизацию с другого ПК или просто другого браузера (т.е. если прользователь уже зашел на сайт, то с таким именем и паролем невозможно зайти с другого ПК или другого браузера)
Первое что приходит в голову - это всех кто заходит кидать во временную таблицу в БД и соответственно по этой же таблице проверять всех входящих. Тогда возникает другой вопрос - как определить что юзер закрыл браузер и убрать запись из временной таблицы? |
18.02.2010, 20:23 | #2 |
Форумчанин
Регистрация: 04.08.2009
Сообщений: 684
|
Можно в табличке, содержащеё данные об аккаунтах завести поле online. Соответственно, если пользователь что-то делает, то заносим в это поле 1. Если он в течении 5 минут ничего не делает, закидываем туда 0.
Если при авторизации оказывается, что у пользователя в этом поле стоит 0, то посылаем его лесом.
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой? |
18.02.2010, 20:25 | #3 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
Наполовину этот вопрос решается отправкой запроса на сервер при закрытии браузера. Насколько я помню, такое событие есть. Но юзер может отключить яваскрипт. Правда, тогда можно сделать, чтобы вообще нельзя без него работать было
|
18.02.2010, 20:40 | #4 | |
Пользователь
Регистрация: 28.12.2009
Сообщений: 42
|
Цитата:
Может быть есть более оптимальное решение? Я думаю многие с такой проблемой сталкивались... |
|
18.02.2010, 20:44 | #5 |
Форумчанин
Регистрация: 04.08.2009
Сообщений: 684
|
а что тут отслеживать? при загрузке страниц пишем в базу online = 1
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой? |
18.02.2010, 21:03 | #6 |
Пользователь
Регистрация: 28.12.2009
Сообщений: 42
|
Ну, с предложенным вами решением тоже возникают некоторые вопросы:
1) Например, пользователь авторизоватся (online = 1), подождал 5 минут (online = 0), открыл другой браузер и все равно авторизовался повторно 2) Как отмерить эти 5 минут, не используя CRON? |
18.02.2010, 23:37 | #7 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,179
|
я помнится делал так:
при авторизации - генерил случайный md5 отпечаток и записывал в поле uid юзера и в сессию.... при попытке второго захода - uid менялся - и первого пользователя выкидывало ))) так как uid в сессии не совпадал с отпечатком в БД таким образом осуществлялось единственность входа... можно немного докрутить под ваш вариант |
03.03.2010, 02:37 | #8 | |
Регистрация: 01.02.2008
Сообщений: 5
|
Цитата:
|
|
03.03.2010, 14:49 | #9 |
Antimoderаtoris
Участник клуба
Регистрация: 08.02.2008
Сообщений: 1,251
|
Я лично всегда "перегружаю" сессии. Вручную устанавливаю кукисы, а не через сессии.
Чтобы отмерить время которое пользователь бездействует на сайте - вместо 0/1 в online можно закидывать "unix timestamp". То есть ввёл юзер пароль на сайте первый раз - в таблице сессий записал его логин, хэш (md5 который тебе предложил ADSoft) и время (обыячный штамп времени). Теперь ты знаешь когда пользователь залогинился. Как только пользователь обновляет страницу - проверяешь когда была его последняя активность. Если более 5-ти минут назад (300 секунд), то обнуляешь его хеш и просишь ввести пароль снова. Если же менее 5 минут, то просто обновляешь штамп времени его последней активности на новый. Кукисы тоже можешь установить на 300 секунд. Хэш позволяет контролировать доступ пользователя с других компьютеров и т.д. Кстати метка времени в базе не позволит кому-то, кто украл кукисы пользователя, зайти под именем пользователя вне активности пользователя.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
|
22.10.2012, 05:42 | #10 |
Новичок
Джуниор
Регистрация: 22.10.2012
Сообщений: 1
|
Запрет повторной авторизации на сайте c CMS Joomla 2.5
Здравствуйте!
Ищу решение проблемки. Сайт на CMS Joomla 2.5. На сайте есть информация, которая доступна только конкретным пользователям. В итоге, эти пользователи раздают свои логины/пароли друзьям и под одним ником сидят несколько пользователей. Нужно к корне исправить ситуацию. Очень хотелось бы, что бы одновременно был зарегистрирован только один пользователь со своим ником. Других не пускал. Нашел эту тему и надеюсь, что кто-то может помочь. К сожалению, я сам не программист, но судя по сообщениям, эта проблема решаема. Спасибо. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Удаление повторной информации из таблиц | paratruper17 | Microsoft Office Word | 8 | 03.11.2009 10:31 |
Комплексный вопрос на тему авторизации на сайте и подтверждению сертификата | Anatol_rus | Работа с сетью в Delphi | 13 | 15.10.2009 15:44 |
помогите с повтороной регистрацыей на сайте - там система протв повторной регистрации стоит - как обойти? | Emigrant | Помощь студентам | 5 | 06.10.2009 14:05 |
Проблема авторизации на сайте | Terikon | Работа с сетью в Delphi | 0 | 17.03.2009 16:50 |
запрет повторной регистрации | bllem | PHP | 12 | 27.11.2006 10:24 |