В настоящее время я разрабатываю веб-сайт с Laravel, где пользователи могут зарегистрироваться, а затем войти в систему, чтобы что-то сделать на моей странице.
Теперь я планирую ввести возможность работать в качестве гостя, чтобы они могли «Войти в систему как гость», а затем действовать как обычный пользователь (но без возможности постоянного сохранения информации, которую они там вводят). Кроме того, они всегда должны иметь возможность изменить эту гостевую учетную запись на постоянную учетную запись, введя свой адрес электронной почты, а также пароль. Я думал о том, чтобы просто создать нового пользователя в БД при нажатии на вход в качестве гостя, как обычный зарегистрированный пользователь, а затем удалить его, но я не уверен, что это возможно легко... Есть ли способ "легко" сделать это или у вас есть идеи о том, как это сделать?
Зарегистрированный пользователь должен иметь возможность делать множество вещей, таких как изменение своего адреса, информации, отправка билета, подписка на информационный бюллетень и т. д., гости смогут только положить что-то в свою корзину и купить (и пока покупая, они также должны иметь возможность создать учетную запись ..) Также я знаю, что мне может потребоваться реализовать пользовательскую защиту для аутентификации гостевого пользователя (потому что обычно им потребуется пароль, я только хочу, чтобы они ввели свой почтовый адрес, чтобы "войдите в систему". Но, конечно, мне нужно сгенерировать сеансовый ключ и т. д., так что тогда это часть охранников... Но что мне нужно сделать, чтобы создать такой собственный охранник, который заполняет мои проблемы? Я нашел laravel документ для этого (https://laravel.com/docs/5.3/authentication#adding-custom-guards), но не могу совместить это с моей проблемой....
PS: я использую Laratrust для разных ролей на странице, поэтому я могу отображать различные меню или другую информацию для гостя после входа в систему с его почтовым адресом. Но все же вопрос в том, как это сделать... Спасибо за любую помощь!
Правка. Подумав еще раз, я хочу внести ясность. В основном я планирую изменить страницу входа в систему и добавить кнопку «Продолжить как гость» и определить для нее маршрут, например guestLogin
. Этот маршрут будет указывать на контроллер, который каким-то образом входит в систему, используя (вероятно, самодельную) аутентификацию. При нажатии на кнопку в таблицу users
моей базы данных добавляется запись, содержащая только идею и токен запоминания. Затем гость может поместить товары в свою корзину и заказать что-нибудь. В процессе заказа ему необходимо ввести свою личную информацию, такую как адрес, адрес электронной почты и т. д. Затем он также может установить флажок, чтобы автоматически зарегистрироваться, введя пароль. Затем его информация также сохраняется в БД (в строке, созданной для гостевого пользователя).
PS: Опять же, в Laratrust я бы создал роль гостя, чтобы показывать именно те страницы, которые я хочу, чтобы он показывал, а также настраиваемые страницы оформления заказа. Таким образом, единственная реальная проблема - это вход в систему (с помощью пользовательской защиты авторизации, которую я понятия не имею, как ее реализовать), а также более поздняя регистрация для пользователя, который в основном уже существует (даже если пока это просто идентификатор в БД).
Надеюсь, вы поняли мою идею.