1

我目前正在使用 Laravel 开发一个网站,用户可以在其中注册并登录以在我的页面上执行某些操作。

现在,我计划介绍以访客身份进行操作的可能性,这样他们就可以“以访客身份登录”,然后像普通用户一样进行操作(但无法永久保存他们输入的信息)。此外,他们应该始终能够通过输入他们的邮件地址和密码来将此访客帐户更改为永久帐户。我想在单击以访客身份登录时简单地在数据库中创建一个新用户,就像普通注册用户一样,然后将其删除,但我不确定这是否容易......有什么方法可以“轻松”这样做还是您对如何做有任何想法?

注册用户应该能够做很多事情,比如更改他们的地址、信息、提交票证、注册时事通讯等……客人只能将东西放入购物车并购买(同时购买他们也应该能够创建一个帐户..)另外我知道我可能需要实现一个自定义保护来验证来宾用户(因为通常他们需要密码,我只希望他们输入他们的邮件地址“登录”。但是我当然需要生成会话密钥等,所以这是守卫部分......但是我需要做什么来创建这样一个自定义守卫来满足我的问题?我找到了 laravel文档(https://laravel.com/docs/5.3/authentication#adding-custom-guards),但不能真正将它与我的问题结合起来......

PS:我在页面中为不同的角色使用 Laratrust,因此我可以在使用他们的邮件地址登录后为访客用户显示不同的菜单或其他信息。但是,问题仍然是如何做到这一点......谢谢您的帮助!

编辑:再次考虑之后,我想让它更清楚一点。我基本上计划更改登录页面并添加一个像“以访客身份继续”这样的按钮并guestLogin为它定义一个路由。这条路线将指向一个控制器,该控制器以某种方式使用(可能是自制的)身份验证登录。单击该按钮时,会users在我的数据库中的表中添加一个条目,其中只有一个想法和一个记住标记。然后,来宾用户可以将产品放入他的购物车并可以订购一些东西。在订购过程中,他需要输入他的个人信息,例如他的地址、电子邮件地址等。然后他还可以选择选中复选框以自动注册,然后输入密码。然后他的信息也被保存到数据库中(在为来宾用户创建的行上)。

PS:再次在 Laratrust 上,我会创建一个访客角色来准确显示我希望他显示的页面,以及自定义结帐页面。所以唯一真正的问题是登录(通过自定义身份验证保护,我不知道如何实现它)以及稍后注册一个基本上已经存在的用户(即使到目前为止它只是 db 中的 ID)。

我希望你明白我的想法。

4

1 回答 1

1

身份验证和授权围绕保存和记住从服务器请求资源的用户。为了能够记住,您必须使用会话或数据库或任何其他存储机制。

您必须获取足够的用户信息来识别访客用户,例如。电子邮件,因为他们将执行一些操作,稍后,我们必须找到对数据/应用程序的当前状态进行更改的用户。

将此电子邮件或其他信息存储在数据库的“用户”表中,或使用 Laratrust 创建访客角色。它只是一个简单的访客角色,无需输入密码即可执行基本详细信息的操作。

看看这是否有帮助,否则我们可以进行更详细的讨论。

于 2017-02-16T07:28:22.337 回答