Авторизация (Сесии и куки)
Какой сдесь должен быть алгоритм работы такого скрипта? И как писать скрипт если у пользавтеля будут куки отключены?
Может кто даст пример такого скрипта с обьяснением - буду очень признателен.
sid - идентификатор сессии, я считаю, нужно передавать через http параметры (в брузле - адресная строка, пары ключ=значение после первого вопросительного знака).. ну, а кто из местных считает по-дргому, поищи, эта тема уже обсуждалась...
Организуешь к примеру доступ ко всем разделам сайта через один единственный скрипт, который сам разгребет, куда слать пользователя.. Организуешь в нем инициализацию сессий, проверку нужных параметров и т.п.. При авторизации получаешь пароль/логин, проверяешь их на соответствие с БД... Если все успешно, задаешь в объекте сессии логин/пасс, ну и ранг, если тебе это нужно.. Потом, в разделах, проверяешь "кто есть данный пользователь" путем обращения к этим ключам в объекте сессии.. если пароль/логин незаданы, знач юзер не проходил авторизацию.. если заданы - проходил.. если есть раздел чисто для админов (обычно выносят за пределы основного движка), при попытке доступа к нему заодно проверяешь значение переменной "ранг" в том же объекте сессии.. Ну и т.п. и т.д.. спть хочу, покуопайся, посмотри. че непоймешь - пиши.. тяжелая, нагруженная да и плюс ко всему депрессивная неделя.. немогу сам все размусоливать, а остальным как я понял твой вопрос неинтерсен..
Цитата:
Shiizoo
Я хочу сделать авотризацию так чтобы если юзер не разлогинился, то ему уже не предлагалася авторизация(как на этом форуме). Тут надо использовать кукисы. Какой должен быть алгоритм с таким принципом работы? Спасибо
**Бля...
Опять, написал кучу драчи, изобрел велосипед без руля и сидушки, а птом вспомнил как надо=)))))
Знач смотри, система с кукисами такая же, просто при инициализации сессии пробуй скормить браузеру кукис "sid"=)
А в довесок, для автоматизации авторизации, при ручной регистрации, то бишь кторую пользователь сам, добровольно проходит используя свой браузер, выдаешь ему галку "запомнить меня".. Если он себя запомнил, пучком, знач парень или умник у себя дома, или дурак в гостях.. Если авторизация прошла успешно, то опять же пытаешься закинуть кукисы, теперь у нас их два, "login" и "pwd".. Логин - введенный пользователем логин, без изменений, pwd - хэш пароля, опять же говорю, MD5 - это удобно=)
Криптуй как угодно, лишь бы результат криптования всегда один был:))))
Терь думаем, зафиг мы кидаем юзеру куки "login" и "pwd"?? Система такая, при инициализации сессии, получаем эти долбаные кукисы, сверяем с БД`ой, если проверка прошла успешно - ставим в сессии флажок "logged_in".. И всё.. Никаких гемороев..
Пример такой..
У меня включены кукисы.. Я залез на твой сайт впервые.. Зарегистрировался.. Получил пароль, логин.. Мне предложили тут же залогиница (не логинь автоматом, хотчя, смотри сам).. Я ввожу пароль, логин на страничке авторизации, ставлю галочку "запомни меня", скрипт получает эту лабуду, сверяет с БД - все окей..
Далее скрипт делает хэш пароля, и отсылает мне две куки "login"/"pwd", параллельно влюкчая в сессии флажок "logged_in".. Все, я терь залогинен, все пучком.. Ушел я с сайта.. Вернулся на следующий день.. Залез.. При первом обращении к страничке, а оно у меня щас первое (потому что срок жизни вчерашней сессии уже давно прошел), скрипт инициализирует сессию.. Иициализировал.. Затем скрипт разгребает кукисы, если там есть "login"/"pwd", скрипт сверяет их с БД.. сверяет логин с логином, и pwd с хэшем пароля из БД.. Сверили, все пучком.. Скрипт переключает флажок "logged_in" в свежесозданной сессии и выводит мне страничку, которую я просил, сообщив мне "sid" (в кукисы, или же дописав ко всем 'локальным' относительно этого сайта ссылкам).. Всё, теперь я могу залезть и в личный кабинет, и отметица в гостевой книге, и участвовать в голосованиях нихрена не логинясь.. Все уже сделано..
Такой вот в общем пример.. Срок жизни сессий, я к примеру ставлю 60 мин.. Можь много, мне так удобней, смотри сам.. Если твой ресурс не предполагает длительного "зависания" на нем пользователей, ставь меньше, лишь бы больше не ставил:)) А-то придет какой-нить Вася Пупкин к своей подружке Фросе Бурлаковой домой, сядет за ее комп, пока та туалет будет драить, и залезет на твой сайт.. Казалось бы, Фрося не дура, никаких авторизаций "на лету" не задействовала.. Только хрена там было, у Фроси включены кукисы, "sid" храниться опять же в них, и зайдя на сайт Вася Пупкин получил доступ ко всему, до чего дозволено дотрагиваться Фросе.. как результат - текстовая порнография в ленте новостей, подмена её инфы, на 'крайне вызывающую' и т.п. и т.д.. Оно надо? Думаю нет.. Да, кстати, максимально ярко выдели кнопку "ВЫХОД" у себя на сайте.. Она спасает от такой драчи, только далеко не все понимают.. Даже нет.. Еще не видел человека, который жмет на такие выходы.. Оно и понятно, когда кнопка имеет размеры 5 на 5 пикселей, сливается с цветом фона и даже бывалый разведчик несразу поймет "на кой черт эту хрень сюда влепили?" - естессно.. Ну кто ее жать будет?:) Люди - клептоманы, кто-то в большей степени, кто-то в меньшей.. Пользуйся этим, дабы избежать неприятных ситуаций..
Ну, типа всё.. Как всегда размашисто, невнятно, но вроде по делу.. Или нет?=) Че непонятно - пиши, пиши, и еще раз пиши.. А как почуешь, что узнал все что хотел - отпиши сюда=) Нелюблю людей, кто получая ответ испаряются, хотя бы точку бы кинули в отдельном посте, типа "Все ребята, вопросов больше не имею".. Мы ж ждем=) Можь не все, ну вот я к примеру=) Ответчики тоже не от нехрен делать сюда пишут, разминаемся, тренируемся, рассуждаем.. Эт не бесплатные обеды, наоборот, ты мне - я тебе.. вопрос - ответ.. =) Тебе хорошо, и я мозги размял.. +))
Ну всё, часливо..
У меня еще есть вопросик - что делать(алгоритм работы скрипта) если юзер куки отключил, тогда просто сессию создавать и все?
Слушай Шиззззо а дай мне свой icq (может это и нагло немного, но просто есть еще пару тем, думаю тебе будет интересно - нужно пару скриптов за $$$)
uin: 163992358
Цитата:
Originally posted by Shiizoo
Если нету куков, все делаешь также, просто дописываешь sid "ко всем локальным ссылкам" и забываешь про авторизация без участия польователя))
Если нету куков, все делаешь также, просто дописываешь sid "ко всем локальным ссылкам" и забываешь про авторизация без участия польователя))
Дописывать к сылкам сид не надо, пхп его само дописывает, если конечно не отключен параметр
session.use_trans_sid, в пхп ини.
так же автоматически добавляет поле hidden
с сидом во все формы.
Дописывать надо только если юзаеш функцию
header()
Топик трэда "Авторизация (Сесии и куки)";)
Кидайте еще кто свои соображения, может кто как подругому действует, все варианты интересны..