McLotos
5.06.2019 - 09:20
Всем привет! Возникла необходимость сделать пошаговую форму регистрации. К форме подкручен ajax, чтобы отсылать информацию о данных, введенных в шаг. Не могу решить какой вариант лучше сделать - возвращать только id созданной сущности или возвращать все данные, введенные в первом шаге регистрации?
_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
AllesKlar
6.06.2019 - 00:39
Возвращать только те данные, которые необходимы для работы следующих шагов.
Необходимость и достаточность.
_____________
[продано копирайтерам]
McLotos, возвращай скрытыми полями или ещё лучше куками все данные, что бы тот кто регистрируется не зависел от времени сессии и сам процесс регистрации мог длится неограниченное время.
Ужасно бесит когда надо по 500 раз заполнять форму регистрации из-за какой либо ошибки.
Регистрация прежде всего должна быть удобной для пользователя.
_____________
Стимулятор ~yoomoney - 41001303250491
Цитата (McLotos @ 5.06.2019 - 08:20) |
Всем привет! Возникла необходимость сделать пошаговую форму регистрации. К форме подкручен ajax, чтобы отсылать информацию о данных, введенных в шаг. Не могу решить какой вариант лучше сделать - возвращать только id созданной сущности или возвращать все данные, введенные в первом шаге регистрации? |
А зачем вообще возвращать что-либо?
Допустим первый этап имя, почта(телефон). Второй дата рождения, третий пароль, четвертый секрет вопрос для восстановления пароля.
McLotos
6.06.2019 - 12:17
Цитата (AllesKlar @ 6.06.2019 - 02:39) |
Необходимость и достаточность. |
Отличная идея. тогда буду возвращать только 1 поле =)
Цитата (Valick @ 6.06.2019 - 02:44) |
или ещё лучше куками все данные |
запихивать в куку пользователя весь бред, который он ввел в форму? неее.
Цитата (Valick @ 6.06.2019 - 02:44) |
Ужасно бесит когда надо по 500 раз заполнять форму регистрации из-за какой либо ошибки. |
это можно решить и без куки, просто сохранением состояния front-приложения. у меня же SPA
Цитата (Эли4ка @ 6.06.2019 - 12:26) |
А зачем вообще возвращать что-либо? |
эээ... ну какбы на первом шаге я отправил например ФИО и email, на втором шаге я отправил уже все остальные данные, как говорил @Valick между первым и вторым шагом могла пройти неделя, как сервер поймет от кого пришли данные? самый простой способ - сохранить email и фио в базу, получить id, вернуть его в браузер и пусть он передается дальше во всех следующих шагах регистрации. В браузере он будет висеть не в куках а в самом приложении, на уровне кода, как часть сущности пользователя
_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
comolov
6.06.2019 - 13:54
Цитата |
самый простой способ - сохранить email и фио в базу, получить id, вернуть его в браузер и пусть он передается дальше во всех следующих шагах регистрации. |
Лучше хеш тогда, id ведь можно поменять.
AllesKlar
6.06.2019 - 14:16
Цитата (McLotos @ 6.06.2019 - 10:17) |
как говорил @Valick между первым и вторым шагом могла пройти неделя, как сервер поймет от кого пришли данные? |
Ерунда полная.
Достаточно времени жизни сессии.
Никто неделю регистрироваться не будет.
Если процесс регистрации за время жизни сессии не закончился, значит пользователь не захотел регистрироваться и покинул ресурс.
С таким же успехом можно предусмотреть вторжение инопланетян и воровство ими физического сервера, на котором скрипт регистрации крутился. Следовательно, необходимо предусмотреть облачный сервис, развернуть API, Failover-Cluster и т.д.
Чувствуешь, бредом несет
_____________
[продано копирайтерам]
McLotos
6.06.2019 - 14:36
Цитата (AllesKlar @ 6.06.2019 - 16:16) |
С таким же успехом можно предусмотреть вторжение инопланетян и воровство ими физического сервера, на котором скрипт регистрации крутился. Следовательно, необходимо предусмотреть облачный сервис, развернуть API, Failover-Cluster и т.д.
|
блин, а думаешь этого всего не нужно? вот черт, а я почти закончил настраивать репликацию между дата-центрами
Цитата (comolov @ 6.06.2019 - 15:54) |
Лучше хеш тогда, id ведь можно поменять. |
а какой хэш? UUID? CSRF-token?
Цитата (Santehnick @ 6.06.2019 - 16:33) |
У тебя же SPA. Сохраняй всё в local storage, а в последнем шаге отправляй все данные на сервер. Пошаговая регистрация в 1 запрос к серверу. |
Так и планировалось изначально, но бизнес хочет иметь хотя бы email и телефон человека который не закончил регистрацию, чтобы потом догнать его письмами и смс. Поэтому первый шаг отправляется сразу, а остальные хранятся локально и отправляются с последним шагом
Цитата (Santehnick @ 6.06.2019 - 16:33) |
Но если принципиально нужно хранить всякий мусор на сервере, то уже правильно подметили, что id подменяется на другой (админский например) и устанавливается другой email/пароль. Изи. |
тогда csrf-token который будет меняться после каждого запроса к серверу?
_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
AllesKlar, сам ты бред.
Пользователь регистрируется, на предпоследнем этапе к примеру появляется необходимость срочно уйти. Через пару дней пользователь возвращается к регистрации и без проблем её завершает.
Цитата (Santehnick @ 6.06.2019 - 13:33) |
У тебя же SPA. Сохраняй всё в local storage, а в последнем шаге отправляй все данные на сервер. |
чем это принципиально отличается от хранения в куках?
Цитата (McLotos @ 6.06.2019 - 11:17) |
самый простой способ - сохранить email и фио в базу, получить id, вернуть его в браузер и пусть он передается дальше во всех следующих шагах регистрации. |
вот это действительно уже бред
как думаешь сколько времени надо что бы написать бота который забъёт под завяз твою БД мусором (о котором уже упоминали)
_____________
Стимулятор ~yoomoney - 41001303250491
comolov
6.06.2019 - 18:51
Цитата |
а какой хэш? UUID? CSRF-token? |
Santehnick все сказал, приведу лишь возможный пример
$user_uid = md5(mt_rand().time());
Цитата (Valick @ 6.06.2019 - 15:27) |
сколько времени надо что бы написать бота который забъёт под завяз твою БД мусором |
Цитата (McLotos @ 6.06.2019 - 13:36) |
бизнес хочет иметь хотя бы email и телефон человека который не закончил регистрацию, чтобы потом догнать его письмами и смс. |
_____________
Бесплатному сыру в дырки не заглядывают...
Цитата (FatCat @ 7.06.2019 - 10:26) |
бизнес хочет иметь хотя бы email и телефон человека который не закончил регистрацию, чтобы потом догнать его письмами и смс. |
значит, капчу надо вводить на первой странице регистрации и писать в БД email и телефон
но это ничего не меняет
_____________
Стимулятор ~yoomoney - 41001303250491
McLotos
11.06.2019 - 11:04
Valick
кажется ты усложняешь.
Задача ведь простая. Там есть неплохая защита от ботов.
Чтобы попасть на второй шаг, нужно прийти по ссылке из email, а чтобы пройти на 3й шаг, нужно во втором шаге ввести код из смс. Так что боты не страшны =)
_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Valick
11.06.2019 - 14:09
Цитата (McLotos @ 11.06.2019 - 10:04) |
Чтобы попасть на второй шаг, нужно прийти по ссылке из email, а чтобы пройти на 3й шаг, нужно во втором шаге ввести код из смс. |
да как у тебя язык поворачивается говорить, что я усложняю
_____________
Стимулятор ~yoomoney - 41001303250491
McLotos
12.06.2019 - 07:19
боты точно не страшны
_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.