|
|
|||||
Реализация прав доступа AS3/PHP
Добрый день.
Возникла необходимость прикрутить к одному проекту систему пользователей, админку, но т.к. никогда с этим не сталкивался хочу узнать какие подводные камни могут встретиться и каким лучше путём пойти, оптимальные решения. Тема конечно не маленькая, и относится не только к AS3, но и к PHP. Может кто мануалом каким поделится на эту тему? Я так полагаю без сессий и куков этот вопрос не решить, а опыта работы в этом нет. Есть ли смысл взять уже готовые php скрипты и подстроить под них свой проект? |
|
|||||
Регистрация: Mar 2009
Сообщений: 317
|
Начну с конца. =) имхо готовых скриптов лучше не брать, хотя решать Вам. Подводные камни есть, и основной камень отсутствие опыта. Ссылки давать не вижу смысла,их будет просто очень много. Гугл должен всегда (ну или почти всегда) подсказать. Используем связку AS3+PHP+MySQL и все. =)
|
|
|||||
на счёт связки AS3/PHP/MySQL в приницпе понятно. Вопросов в данный момент очень много и вываливать их все тут смысла нет. Ну основные 2 вопроса на данный момент это, пожалуй, сессии и куки. Я полагаю что без сессий вся система будет не полноценна в приницпе, а вот от куков на первых этапах можно и отказаться, они же не влияют на поддержание сессии? Как я понимаю сессия с пользователем держится по таймауту активности и основной плюс куков это отсутствие необходимости вводу логина/пасса при обращениях через определённое время?
|
|
|||||
Регистрация: Aug 2008
Адрес: 53 E
Сообщений: 60
|
Вместо куков, если у Вас весь проект держится на Flash-технологии, Вы можете использовать класс SharedObject, он гораздо более мощный нежели php-куки. По сессиям Вам нужно читать php.su.
Добавлено через 1 минуту и для чего Вам нужны сессии, определять находится ли пользователь online? |
|
|||||
Мечтатель, ну вообще, в данный момент меня интересует сам приницип реализации алгоритма. А полное отсутствие опыт в этих вопросах кидает из крайности в крайность.
Я думал не изгалятся и попробовать такую схему: Пользователь вводит логин/пароль в флэшке, она отсылает запрос пхп скрипту и если скрипт даёт положительный ответ, то флэшка берёт эти логин/пароль константами и отсылает их с каждым запросом, а скрипт уже обрабатывая запрос, на основе логина и пароля выдаёт соответствующие ответы. В целях безопасности пароль можно пересылать в MD5, как защиту он сниферов. На лицо полное отсутствие сессий, куков и прочей ерунды. Особых минусов в данном алгоритме не вижу... хотя не имея опыта могу чё-то упустить из виду. Про сессии. Я может совсем неправильно понимаю слово "сессия", для этого тут и пишу, чтобы меня научили. Пользователь вводит логин и пароль в флэшке, она отсылает их скрипту в MD5, и если скрипт авторизирует логин/пароль, то заносит данного пользователя в таблицу активных(открывает сессию) и отсылает флэшке номер сессии ID. В таблице активных пользователь имеет поля Login, IP, ID, LastRequestTime и др. При дальнейших запросах флэшка в запросе отсылает скрипту ID и собственно сам запрос. Скрипт сравнивает ID, проверяет соответствие IP отправителя и время запроса, если ID и IP соответствуют, проверяется время последнего и текущего запроса и если разница не превышает установленного TimeOut запрос выполняется, если TimeOut превышен, то пользователь из таблицы активных удаляется(сессия закрывается). Принципиальной разницы в данных алгоритмах не вижу, за исключением того, что второй способ даёт возможность видеть onLine пользователей(хотя и к первому это можно прикрутить по LastRequestTime ). И то, надо будет прикрутить скрипт который будет через небольшое количество времени (1мин например) очищать таблицу активных пользователей по TimeOut. Я не отрицаю, что вышенаписанное может быть полным бредом И кстати, извиняюсь за оффтоп. |
|
|||||
Регистрация: Nov 2008
Сообщений: 528
|
Не бред. Написано правильно. Что такое "сессия"? Это, по сути, ваш сетевой идентификатор плюс сопутствующие данные в рамках одного сайта. Технически вы можете реализовать как хотите. Опираться на сессии php, если у вас полностью флешевый сайт, похоже, смысла мало.
|
|
|||||
Можно этот скрипт не прикручивать, что бы каждую минуту не загружать сервер (ему придется "сканировать" всю таблицу, различные операции сравнения). Лучше проверку встройте в активные скрипты. Например, в скрипте обращения к какому-нибудь пользователю происходит проверка активен он или нет, и, если активен, скрипт успешно срабатывает, ежели нет, пользователю возвращаются сведения, что пользователь не активен, а сервер автоматически удаляет его из таблицы.
|
|
|||||
serenkiy, Я Вас слегка не понял... С Ваших слов получается, что если к скриптам вообще никто не обращается, то пользователь так и остаётся в таблице активных с прошедшим таймаутом, а если обращений слишком много, то сервер от каждого обращения загружает себя работой по чистке таблицы. Помоему если поставить скрипт на выполнения раз в минуту это не очень загрузит сервер и таблица будет всегда актуальна.... можно даже раз в 5 минут поставить.
Stargazer, вообще надеялся услышать описания стандартных, "объезженных" алгоритмов работы таких приложений. Уж если что-то создавать и набираться опыта, то не охото чтобы этот опыт был ненужным. GBee, гм... я так и написал вроде... за исключением того, что отсылается только ID сессии. Думаю, нет смысла пересылать ненужные данные, так как по номеру сессии скрипт сможет определить какому пользователю принадлежит текущая сессия и все требуемые для этого переменные. |
Часовой пояс GMT +4, время: 19:14. |
|
« Предыдущая тема | Следующая тема » |
|
|