通过循环psql表验证用户日志电子邮件和密码

问题描述 投票:-1回答:2

我正在学习编码,并且正在尝试使用Express在节点中构建一个用于执行Web应用程序(我认为这是正确的措辞)。

我在postgresql中有一个表('users'),它存储了user_id,email和密码。

当用户登录到网站时,我想循环遍历该表并确保该电子邮件存在且与密码匹配,然后用户可以登录并在他们登录时 - 他们分配了他们唯一的user_id并调出他们之前的做清单..如果可能的话,我想加入knex。

我不知道如何做到这一点,并希望任何提示/指向正确的方向。

谢谢

javascript html postgresql knex.js
2个回答
0
投票

首先尝试基本的东西

SELECT
  user_id
  FROM users
  WHERE
   email = _your_user_email
   AND password = _your_user_password;

如果您返回的结果包含user_id或您想要返回的任何内容,则该用户存在。您可以通过检查电子邮件进一步扩展,并让用户知道电子邮件存在但密码不正确等。首先尝试使用简单方法,看看这是否符合您的需要。


0
投票

首先,我建议你为你的id表命名你的users字段为id。最佳做法是将id字段命名为id,将引用列命名为<tablename>_id(例如,表格clothes.id iter和clothes.user_id的唯一标识符 - 表格users的外键)。

其次,强烈建议不要将密码作为原始数据存储在数据库中(出于安全原因)。将用户密码保存为散列数据是一种常见做法。例如,看看bcrypt包。

要选择用户(在数据库方面没有“循环”这个东西,它被称为“查询”)你需要创建一个类似的查询

select
    id,
    email,
    <any_other_field_you_need>
from
    users
where
    email = '[email protected]'
    and password = 'your password hash'

knex而言,它可以写成

knex('users')
    .select(['id', 'email', '<any_other_field_you_need>'])
    .where('email', '[email protected]')
    .where('password', 'your password hash')

您可以从快递body获得的查询参数(电子邮件,密码)。确保使用POST HTTP方法发送请求并将数据作为正文传递。

如果你不知道express - 这是一个npm package。它有助于创建Web服务。他们的官方网站上有一个问候世界guide。随意检查出来。或者只是简单地谷歌“为初学者表达教程”,有很多很棒的互联网教程。它很受欢迎。

© www.soinside.com 2019 - 2024. All rights reserved.