Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在不输入用户名或密码的情况下对用户进行身份验证?_Php_Mysql_Laravel - Fatal编程技术网

Php 如何在不输入用户名或密码的情况下对用户进行身份验证?

Php 如何在不输入用户名或密码的情况下对用户进行身份验证?,php,mysql,laravel,Php,Mysql,Laravel,我正在为学校做一个项目,这是一个简单的网上商店,有购物车和管理员管理,用PHP和MySQL数据库构建。在数据库中,我有admin表和users表。users表包含3个用户,user1、user2、user3。现在,我希望用户扫描二维码,并能够从商店购买 假设user1扫描代码并订购了一些东西,在管理面板中,你会看到user1订购了什么 简言之,我希望用户扫描二维码,以验证网站,以便进行购买 如果问题不可理解,很抱歉。 我认为您的users表应该包含一个带有令牌的列 该令牌应打印在二维码中 您可以

我正在为学校做一个项目,这是一个简单的网上商店,有购物车和管理员管理,用PHP和MySQL数据库构建。在数据库中,我有admin表和users表。users表包含3个用户,user1、user2、user3。现在,我希望用户扫描二维码,并能够从商店购买

假设user1扫描代码并订购了一些东西,在管理面板中,你会看到user1订购了什么

简言之,我希望用户扫描二维码,以验证网站,以便进行购买

如果问题不可理解,很抱歉。

  • 我认为您的users表应该包含一个带有令牌的列
  • 该令牌应打印在二维码中
  • 您可以使用扫描仪扫描该值,然后从数据库中检索用户

我认为这对于一个学校项目来说很好,但是对于一个真正的网店来说,安全性非常弱。这就是你想要的吗

$data = User::where('qr_token', $qr_token)->first();

if ($data) {
        auth()->login($data);
    }

我认为二维码令牌不是auth的最佳实践。

“我想要”实际上不是一个问题,但是的,我们理解您所写的内容。基本上,每个用户都需要一个唯一的二维码,可能是在他们首次注册时创建的。但我不确定它是否是最安全的代币——如果您碰巧看到它,它很容易复制。如果您的二维码具有可多次使用的查询字符串参数,您可能会发现您引入了安全问题。@ADyson抱歉,这不是一个问题,但您明白我的意思。所以基本上我需要一个代币系统?在你的设计中,用户的二维码就是代币。我的观点是,它不是一个非常安全的。二维码并不是用来作为安全标识的。它们很容易复制,也很容易解码。所发生的一切就是设备解码二维码,将其转换为URL,然后访问该URL。因此,您的URL必须包含一些标识用户的内容。一旦知道了这个URL,任何人都可以访问该URL并模拟用户,而不必直接看到二维码。我知道这只是为了学校,但我认为学习一些不太现实的东西没有多大意义。在我看来,您最好把时间花在学习通常应用于web应用程序的各种安全性上。关于认证系统的另一件事是永远不要创建自己的(除非这成为您的研究或专业领域)-始终使用现成的、经过测试的平台。如果您专门研究安全性,那么QR不是一个好的解决方案。如果您没有专门研究安全性,请使用现成的解决方案,并将精力花在其他地方。因此,我只需要创建一个令牌列,使用二维码实现它,然后检查哪个令牌与哪个用户对应,并与其进行会话?是的,它是脆弱的,但我不需要真正的安全,因为这是一个学校项目。它不是脆弱的安全,而是完全缺乏安全。二维码只不过是编码为图片的URL。一旦你复制了二维码(非常简单)或者看到了它指向的URL,你就可以访问用户的帐户。我可能看到QR码是如何作为更全面的认证系统的一部分作为一种方便的方法提供的,但这种方法非常幼稚。我不确定,即使是一个学校项目,如果该项目是建立一个网上商店,意味着钱是用来转手的(即使只是在理论上),也会认为这是一个可信的解决方案