Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Action script 2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=49)
-   -   Авторизация при помощи Remote Shared Object и FlashCommServer (http://www.flasher.ru/forum/showthread.php?t=65030)

v350 18.11.2004 22:47

Авторизация при помощи Remote Shared Object и FlashCommServer
 
Вложений: 1
Всем привет! :) Товарищи, кто сведует, оцените пожалуйста алгоритм. Задача: регистрация/авторизация юзера с использованием Flash Communication Server.
Продукт этот пока мне в новинку, посему вижу здесь только 2 возможных решения, основанных в обоих случаях на использовании Remote Shared Object.
Смысл: создается серверный шаред обжект, являющийся базой данных, храняшей пары - логин/пароль.
Грамотен такой подход?

Отсюда вытекает 2 способа записи/чтения данных в RSO:

1. Запись/чтение пары логин/пассворд берет на себя сервер.
Т.е. мы передаем, допустим методом NetConnection.connect или вызовом серверной функции, данные введенные юзером в текстовое поле. Сервер, в свою очередь, проверив/записав данные, вызывает функцию клиента, передавая параметр "успешно авторизован" или код ошибки.


2. Функцию проверки пары логин/пароль или записи ее в файл (при регистрации) выполняет клиент.
По такому принципу выполнен приведенный ниже алгоритм, написанный мной.
Код работает, но верен ли такой подход? Прошу совета.

(полная версия - см. в исходнике *.rar)

this.client_nc = new NetConnection();

function RegisterConnectToServer() {
if (!client_nc.isConnected) {
this.client_nc.connect("rtmp:/TestVideoServer/Autorisation");
}

// При регистрации подключаемся к серверу, если соединение еще не установлено.

this.text_so = SharedObject.getRemote("account", this.client_nc.uri, true);
this.text_so.connect(client_nc);
this.text_so.onSync = function(list) {
var ansver = root.registerUser(root.reg_mc.reg_login.text, root.reg_mc.reg_pass.text);
if (ansver) {
Alert.show("User register sucesfully!", "Server Message");
} else {
Alert.show("Error registry! This user already consists.", "Server Message");
}
delete this.onSync;
};
/* Как только получено событие о синхронизации с RSO, в цикле проверяем наличие у data свойства-объекта, с собственным свойством равным значению введенному в поле password.
Если оно найдено - выводим сообщение ошибки "Error registry! This user already consists.", если нет создаем новый объект в свойстве data И записываем в RSO пару логин/пароль.
Удаляем обработчик.
*/

}

registerUser = function (log, pass) {
for (var i in this.text_so.data) {
if (this.text_so.data[i].login == log) {
return false;
}
}
this.uniqId++;
this.text_so.data["u"+this.uniqId] = new Object();
this.text_so.data["u"+this.uniqId].login = log;
this.text_so.data["u"+this.uniqId].pass = pass;
return true;
};



То же при проверке логина (см. плиз исходник - *.rar). При получении события синхронизации с RSO (onSync) проверяем совпадение введенных данных со значением data.

v350 24.11.2004 11:33

Господа, пожалуйста уделите внимание вопросу! Nox, John, Bitsky, Штрек, sergwizard , что всех лично нужно попросить? :)
Сложно вникать в код? - хорошо, не надо! Хотя бы общий подход подскажите.

prd2 02.12.2004 18:35

autoris.zip битый, закачай еще раз.

v350 03.12.2004 13:05

Ура! Уважаемый prd2 , спасибо тебе хотя бы за проявление внимания!!! :)

Это rar архив, попробуй переименовать в autorize.RAR


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

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