Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.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
在React.JS中实现登录系统&;Node.JS_Node.js_Reactjs_Mongodb_Express - Fatal编程技术网

在React.JS中实现登录系统&;Node.JS

在React.JS中实现登录系统&;Node.JS,node.js,reactjs,mongodb,express,Node.js,Reactjs,Mongodb,Express,我需要在MERN stack中实现一个登录系统,其中将有三种类型的登录。 1.管理员登录 2.学生登录 3.教员登录 管理员登录将有一个预定义的用户名和密码(比如admin&admin@123分别)如果需要,可以更改。只有管理员从其仪表板添加新学生或教员时,教员和学生才能登录。学员和教员用户名将是学院的注册号,密码将是出生日期 我遇到的所有教程都是关于注册和身份验证的&因为注册不是这个项目的一部分,我想知道我应该如何使用这个功能 我正在使用mongodb作为数据库。这里有多种情况: 身份验证:接

我需要在MERN stack中实现一个登录系统,其中将有三种类型的登录。 1.管理员登录 2.学生登录 3.教员登录

管理员登录将有一个预定义的用户名和密码(比如admin&admin@123分别)如果需要,可以更改。只有管理员从其仪表板添加新学生或教员时,教员和学生才能登录。学员和教员用户名将是学院的注册号,密码将是出生日期

我遇到的所有教程都是关于注册和身份验证的&因为注册不是这个项目的一部分,我想知道我应该如何使用这个功能


我正在使用mongodb作为数据库。

这里有多种情况:

  • 身份验证:接受和检查用户名和密码
  • 授权:一旦用户对自己进行了身份验证,为其分配适当的权限级别(在您的案例中为管理员、教员、学生)
  • 注册:在您的系统中,只有管理员可以注册新用户。这与允许自注册的某些系统不同。根据你的要求,你的没有
  • 重要安全提示使用出生日期作为密码是一个非常糟糕的主意。为什么?如果一个网络爬虫闯入你的数据库,他会有一个姓名和出生日期的列表。这些都有助于窃取你的用户身份。他们也被认为是个人身份信息,因此他们被GDPR覆盖还有加州消费者隐私法。但你没有问过这件事……)

    让我们逐一了解您的要求

    1-身份验证。这是一个简单的用户名/密码方案。使用该模块及其策略

    2-授权。当您查找用户时,也会查找其权限级别(再次是管理员、教员或学生)。Passport为您的用户提供会话cookie,以便他们保持登录状态

    在显示任何页面或接受用户的任何API请求或表单发布之前,请检查授权级别。如果不允许用户使用特定功能,请发回403错误消息,而不是显示页面或接受表单

    3-注册。您需要一个用于创建/替换/更新/删除用户的表单(称为CRUD表单)。此表单只能由管理员访问

    顺便说一下,所有这些都发生在您的node/express服务器上。您的react客户端必须在每个请求中传递passport生成的会话cookie,以便服务器可以查找用户以检索授权


    以这种结构化的方式思考您的需求应该有助于您应用从各种在线教程中学到的知识。

    我看了一些passport身份验证教程,它们都具有singup功能。您能否指导我如何在默认设置用户名和密码的情况下实现管理员登录我共享的e-link几乎可以解决我的所有问题,除了管理员登录,其中密码和用户名已经在数据库中,您不必注册。之后,我可以从管理员仪表板以与链接教程中相同的方式注册用户。