Сохранение данных неаутентифицированного пользователя?

В общем, есть нечто похожее на интернет-магазин, в виде сайта, адаптированного под моб. девайсы.

Пользователь может "шариться" по каталогу, добавлять товары в корзину, после чего жмет кнопку "сделать заказ", вводит свой дом. адрес и заказ доставляется. Собственно, само сохранение в БД всех данных и происходит на этапе нажатия кнопки "сделать заказ".

Казалось бы, всё хорошо, у администратора заказ отобразился. Однако, у самого пользователя тоже есть вкладка "Мои заказы", где он может посмотреть в каком статусе его заказ (в обработке, готовится, доставляется, доставлен). Сейчас пользователь ничего посмотреть не может, т.к заказ в БД к пользователю никак не подсоединяется.

Вопрос: Как это моно сделать с минимумом костылей и говнокода?
  • Вопрос задан
  • 2988 просмотров
Решения вопроса 1
Если работа только с мобильными устройствами, можете смело использовать localStorage. При сохранении заказа генерируйте какой-нибудь токен, который возвращайте в ответе на запрос сохранения вместе с идентификатором заказа. Токен и идентификатор сохраняйте вместе с данными заказа в localStorage. В дальнейшем при необходимости выводите данные заказов из localStorage. Идентификация (в данном случае корректности браузера, а не клиента) производится путем проверки соответствия токена идентификатору заказа. Правильнее это делать путем запроса на backend. Для пользователя все будет абсолютно прозрачно.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 7
kirillplatonov
@kirillplatonov
Ruby on Rails developer
Хранить информацию о заказе в Cookie. Вы должны понять, что это как оперативная память компьютера - данные хранятся на стороне пользователя, но хранилище временное и если он зайдет с другого устройства или удалит cookie то пропадет и его связь с заказом.
Самое простое решение просить только Email. На него отправите информацию о заказе и ссылку для отслеживания статуса. Можно даже не требовать пароль для просмотра статуса. Генерируйте уникальные ссылки для разных заказов. Это самый простой вариант, на мой взгляд.
Ответ написан
Например создавать нового пользователя, сохранять данные и отправлять ему на email логин и пароль от сайта.
Ответ написан
Actor
@Actor
Заказ же пишется в базу?
1. После сохранения в базу пишем юзеру куку.
2. Уникальный идентификатор будет адрес заказа, к примеру с удаленными пробелами. (тут же можно сделать форму заполнения адреса более строгой, что б более точно идентифицировать юзера)
Ответ написан
Вы ему данные, какие то на e-mail все равно же отправляете?
С уточнениями заказа, по крайней мере, не делать того - было бы глупо.
Дк вот, у Вас все равно есть какой то номер заказа.
На сайте делаете отдельную форму, в ней одно поле, что то по типу "Проверить статус заказа". Человек вводит номер заказа, на что Вы ему можете выдать, ну например, статус заказа.
Ответ написан
Правильнее будет использовать localStorage или что-то на основе cookie. В таком случае пользователю будут доступны его заказы, пока он не почистит историю)
Ответ написан
Не придумывайте глупости, надо по емэйлу сгенерить пароли и отослать на почту. Вы откроете данные всех своих заказчиков этими куками шмуками...
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Покажите ему временный код клиента, пример: 2424-3335-4353
(где первые 8 - логон, последние 4 цифры - PIN)
Напишите, что действителен код - месяц.
и
поле для ввода почты ниже...
Пусть сам выберет!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы