Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Реализация прав доступа AS3/PHP (http://www.flasher.ru/forum/showthread.php?t=123601)

willis83 06.04.2009 13:25

Реализация прав доступа AS3/PHP
 
Добрый день.
Возникла необходимость прикрутить к одному проекту систему пользователей, админку, но т.к. никогда с этим не сталкивался хочу узнать какие подводные камни могут встретиться и каким лучше путём пойти, оптимальные решения. Тема конечно не маленькая, и относится не только к AS3, но и к PHP. Может кто мануалом каким поделится на эту тему? Я так полагаю без сессий и куков этот вопрос не решить, а опыта работы в этом нет. Есть ли смысл взять уже готовые php скрипты и подстроить под них свой проект?
:confused: :o

duhowka 06.04.2009 19:49

Начну с конца. =) имхо готовых скриптов лучше не брать, хотя решать Вам. Подводные камни есть, и основной камень отсутствие опыта. Ссылки давать не вижу смысла,их будет просто очень много. Гугл должен всегда (ну или почти всегда) подсказать. Используем связку AS3+PHP+MySQL и все. =)

willis83 06.04.2009 21:30

на счёт связки AS3/PHP/MySQL в приницпе понятно. Вопросов в данный момент очень много и вываливать их все тут смысла нет. Ну основные 2 вопроса на данный момент это, пожалуй, сессии и куки. Я полагаю что без сессий вся система будет не полноценна в приницпе, а вот от куков на первых этапах можно и отказаться, они же не влияют на поддержание сессии? Как я понимаю сессия с пользователем держится по таймауту активности и основной плюс куков это отсутствие необходимости вводу логина/пасса при обращениях через определённое время?

Мечтатель 06.04.2009 21:38

Вместо куков, если у Вас весь проект держится на Flash-технологии, Вы можете использовать класс SharedObject, он гораздо более мощный нежели php-куки. По сессиям Вам нужно читать php.su.

Добавлено через 1 минуту
и для чего Вам нужны сессии, определять находится ли пользователь online?

willis83 07.04.2009 01:46

Мечтатель, ну вообще, в данный момент меня интересует сам приницип реализации алгоритма. А полное отсутствие опыт в этих вопросах кидает из крайности в крайность.
Я думал не изгалятся и попробовать такую схему: Пользователь вводит логин/пароль в флэшке, она отсылает запрос пхп скрипту и если скрипт даёт положительный ответ, то флэшка берёт эти логин/пароль константами и отсылает их с каждым запросом, а скрипт уже обрабатывая запрос, на основе логина и пароля выдаёт соответствующие ответы. В целях безопасности пароль можно пересылать в MD5, как защиту он сниферов. На лицо полное отсутствие сессий, куков и прочей ерунды. Особых минусов в данном алгоритме не вижу... хотя не имея опыта могу чё-то упустить из виду.
Про сессии. Я может совсем неправильно понимаю слово "сессия", для этого тут и пишу, чтобы меня научили. Пользователь вводит логин и пароль в флэшке, она отсылает их скрипту в MD5, и если скрипт авторизирует логин/пароль, то заносит данного пользователя в таблицу активных(открывает сессию) и отсылает флэшке номер сессии ID. В таблице активных пользователь имеет поля Login, IP, ID, LastRequestTime и др. При дальнейших запросах флэшка в запросе отсылает скрипту ID и собственно сам запрос. Скрипт сравнивает ID, проверяет соответствие IP отправителя и время запроса, если ID и IP соответствуют, проверяется время последнего и текущего запроса и если разница не превышает установленного TimeOut запрос выполняется, если TimeOut превышен, то пользователь из таблицы активных удаляется(сессия закрывается).
Принципиальной разницы в данных алгоритмах не вижу, за исключением того, что второй способ даёт возможность видеть onLine пользователей(хотя и к первому это можно прикрутить по LastRequestTime ). И то, надо будет прикрутить скрипт который будет через небольшое количество времени (1мин например) очищать таблицу активных пользователей по TimeOut. Я не отрицаю, что вышенаписанное может быть полным бредом
И кстати, извиняюсь за оффтоп.

Stargazer 07.04.2009 02:09

Цитата:

Сообщение от willis83 (Сообщение 811415)
не отрицаю, что вышенаписанное может быть полным бредом

Не бред. Написано правильно. Что такое "сессия"? Это, по сути, ваш сетевой идентификатор плюс сопутствующие данные в рамках одного сайта. Технически вы можете реализовать как хотите. Опираться на сессии php, если у вас полностью флешевый сайт, похоже, смысла мало.

serenkiy 07.04.2009 03:21

Цитата:

Сообщение от willis83 (Сообщение 811415)
. И то, надо будет прикрутить скрипт который будет через небольшое количество времени (1мин например) очищать таблицу активных пользователей по TimeOut.

Можно этот скрипт не прикручивать, что бы каждую минуту не загружать сервер (ему придется "сканировать" всю таблицу, различные операции сравнения). Лучше проверку встройте в активные скрипты. Например, в скрипте обращения к какому-нибудь пользователю происходит проверка активен он или нет, и, если активен, скрипт успешно срабатывает, ежели нет, пользователю возвращаются сведения, что пользователь не активен, а сервер автоматически удаляет его из таблицы.

GBee 07.04.2009 08:50

Мой серверник требовал от меня в каждом запросе ид юзера и сессию. Ид и сессия получались мною после логина.

willis83 07.04.2009 11:03

serenkiy, Я Вас слегка не понял... С Ваших слов получается, что если к скриптам вообще никто не обращается, то пользователь так и остаётся в таблице активных с прошедшим таймаутом, а если обращений слишком много, то сервер от каждого обращения загружает себя работой по чистке таблицы. Помоему если поставить скрипт на выполнения раз в минуту это не очень загрузит сервер и таблица будет всегда актуальна.... можно даже раз в 5 минут поставить.
Stargazer, вообще надеялся услышать описания стандартных, "объезженных" алгоритмов работы таких приложений. Уж если что-то создавать и набираться опыта, то не охото чтобы этот опыт был ненужным.
GBee, гм... я так и написал вроде... за исключением того, что отсылается только ID сессии. Думаю, нет смысла пересылать ненужные данные, так как по номеру сессии скрипт сможет определить какому пользователю принадлежит текущая сессия и все требуемые для этого переменные.

GBee 07.04.2009 12:18

ИД не такая уж тяжелая инфа. Кроме того можно сделать проверку - юзер ты свою сессию юзаешь?


Часовой пояс GMT +4, время: 07:57.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.