Node.js 如何使用Passport.js重置/更改密码
使用Passport.js重置/更改密码是一个相对复杂的过程,但在本文中,您将学会用一种非常简单易懂的方式来实现这个过程。
语法:
其中,requiredUser是我们要更改密码的用户。
方法: 我们将使用passport的changePassword方法,该方法接受两个参数和一个回调函数,第一个参数是旧密码,第二个参数是新密码。
实施: 下面是上述方法的逐步实施过程。
让我们创建一个简单的Node.js应用程序,使用护照来注册用户,并使用mongoose将他们的数据保存在MongoDB中。您可以使用任何想要的方式存储用户数据,如MySQL或简单的数组。在本文中,我们将使用MongoDB。
在此应用程序内部,我们创建了一个 changepassword 路由,该路由接受用户输入的值,如用户名、旧密码和新密码。
步骤1:初始化NPM: 在终端中创建和定位您的项目文件夹,然后键入该命令。
它初始化我们的节点应用程序并创建一个package.json文件。
步骤2:安装依赖项: 将您的根项目目录定位到终端并输入命令。
安装 Express、Body Parser、Mongoose、Passport 和 Passport Local Mongoose 作为项目的依赖项。
步骤3:创建服务器文件: 创建一个名为 ‘app.js’ 的文件,在该文件中引入所有模块,并创建一个名为 ‘app’ 的常量来创建 express 模块的实例,然后使用 mongoose 连接本地的 MongoDB 数据库。
步骤4: 现在初始化passport,创建一个用户模式,使用 passportLocalMongoose 作为用户模式的插件,并创建 User 常量,用于创建 User 的实例并将其保存在MongoDB数据库中。
步骤5: 现在,让我们使用护照模块对用户进行序列化和反序列化。
步骤6: 为用户注册创建一个 register 路由,并创建一个 changepassword 路由,从用户那里接收用户名、旧密码和新密码的输入值。
步骤7: 现在,使用护照注册方法为用户创建一个 注册 的路由,该方法接受两个参数,即用户名和密码,以及一个回调函数,回调函数可以抛出错误或成功消息。
步骤8: 如我们在实施部分已经看到的,我们首先需要找到要更改密码的用户,然后使用具有两个参数的changePassword方法,即旧密码和新密码,并使用回调函数,如果有任何错误则发送错误信息,否则发送成功消息。
完整代码:
app.js
注册.html
changepassword.html
输出: