Предварительная аутентификация/авторизация пользователя в Laravel 5.5?
Есть сайт на Laravel 5.5 на котором можно создать и заказать готовый продукт.
Так как создание заказа требует некоторых усилий, но пользователь, возможно, не захочет тратить время на регистрацию перед формированием заказа - нужна возможность предварительной идентификации пользователя (возможно, создания временного аккаунта) для того чтобы можно было привязать созданный заказ к этому пользователю еще до его регистрации. И только в конце при введении данных для отправки заказа дать возможность пользователю зарегистрироваться.
Как правильно можно сделать привязку заказа к пользователю который еще не зарегистрировался?
Ну ум приходит что-то вроде:
Каждый раз при открытии страницы создавать какую-то "цифровую подпись" для пользователя и сравнивать ее с "подписями" в базе данных и если временного или постоянного аккаунта с такой цифровой подписью не найдено то создавать новый аккаунт к которому можно привязать заказ. + можно использовать какую-то систему ролей аккаунтов (временный/постоянный)
JhaoDa, в данный момент система регистрации работает именно так и сайт находится в стадии "рефакторинг". Данную схему нужно либо сохранить либо улучшить. Так как все равно предстоит переписывать всю систему на Laravel - встал вопрос улучшения.
Со стороны пользователя я бы сам хотел чтобы система функционировала таким образом - чтобы незарегистрированные пользователи могут использовать информацию «cookie / session» для доступа к созданным заказам, могут делать заказы и могут быть зарегистрированы или не зарегистрированы при создании заказа. Но в тоже время должна быть возможность зарегистрироваться при заказе чтобы можно было войти в свой аккаунт, посмотреть статусы заказов и тд и тп. поскольку после чистки cookies войти во временно созданный аккаунт уже не получиться.
alexcook, у нас алгоритм такой:
— гость набивает корзину, её идентификатор хранится в куке. Дропнул куки/сменил/браузер/сменил устройство — его проблемы. При этом на сайте маячит плашка «Зарегайся, тут много вкусного!», эта же инфа в чекауте;
— если гость зарегается в процессе набивания корзины, то корзина привяжется к этому новому пользователю;
— гость создаёт заказ, указывая мыло и телефон, ему приходит письмо с уникальной ссылкой на просмотр заказа, которая живёт вечно;
— при создании заказа (в чекауте) гость может тыкнуть галочку «Зарегать меня», ему придёт письмо с рандомным паролем;
— если гость решил остаться гостем, то его право, в заказе сохраняется вся инфа для доставки, а поле типа customer_id = null.
Для этого уже имеются Сессии и Куки.
Сессия создается не только на авторизованного пользователя.
Чтобы сохранить корзину в рамках нескольких посещений, используй куки браузера.