使用nodejs后端实现登录验证

 

首先在使用express-generator安装expess的脚手架,再使用express-e生成express的框架, 其中-e:  代表使用 ejs 模板,-e前面也可以写 自己定义的项目的名字,不写默认为空。

,然后根据rmvc模式进行搭建架构,建立目录,

使用nodejs后端实现登录验证_第1张图片

其中rmvc。

r,roouter,负责进行路由转发

m,models,负责获取数据,或者经数据操作

v,view,负责模板的样式

c,constrillers,负责事件的逻辑处理

middlewares,中间层,负责进行 验证的用户的权限

keys,负责生成公钥和私钥

public,静态资源存放

utils,连接数据库

 

先进行数据库的连接在utiles下的db.js进行配置数据库的连接,这里使用mongoose插件对mongo数据库进行操作,

使用nodejs后端实现登录验证_第2张图片

连接上数据库后在model数据处理模块中定义传入数据的格式并进行数据的差删改查,(调用mogoose的save,find,remove等方法)

使用nodejs后端实现登录验证_第3张图片

 

数据库配置完成后在router里面的users.js里面配置router,当路由到/signup的时候,就调用controllers里面的use.js里面的signup方法,

1.singup(注册)函数

首先获取在前端注册时传入的用户名,调用select在数据库中查询,查到了就return就不往下进行了

使用nodejs后端实现登录验证_第4张图片

 如果没有查到,

 先引入bysbcrypt插件进行对密码的加密

使用nodejs后端实现登录验证_第5张图片

 

 对密码就行加密并替换

使用nodejs后端实现登录验证_第6张图片

2.sigin(登录)函数

router里面的users.js里面配置router,当路由到/signin的时候,就调用controllers里面的use.js里面的signin方法,

在接受到数据之后,给前台的用户返回一个标识的token

先定义一个随机生成token的函数生成token(这里使用非对称加密生成公钥和私钥进行匹配)

使用nodejs后端实现登录验证_第7张图片

 数首先从数据库查用户的用户名,查到了就调用comparePassword进行密码的校验,校验成功在返回req信息的头信息中添加一个随机的token

使用nodejs后端实现登录验证_第8张图片

3.issigin(判断用户是否处于登录状态)函数(在用户登录之后,如果不进行登出操作就一直维持在登录状态,避免一刷新就退出)

当路由到/signup的时候,就调用controllers里面的use.js里面的oAuthMiddleWare中间层

router.get('/issignin', oAuthMiddleWare)

 

在中间层主要进行验证token,使用公钥对私钥进行匹配

匹配成功就返回issignin = true

使用nodejs后端实现登录验证_第9张图片

 

 

1在后端实现添加操作

效果如图

使用nodejs后端实现登录验证_第10张图片

后端的操作,

1.首先在app.js里面进行配置路由

当路由跳转到这些路径的时候执行对应的路由文件使用nodejs后端实现登录验证_第11张图片

2.在router中的position.js文件中配置使用nodejs后端实现登录验证_第12张图片

首先无论什么请求,先进行用户身份验证的中间层,(就是当用户进行登录才能进行操作),

如果是get请求就调用controller中position.js里面的findall方法

如果是post请求就调用controller中先进行中间层的uploadFile文件将图片文件进行处理然后再调用position.js里面的save方法

3.然后在model数据处理模块建立position的数据处理

先定义存入数据的格式

使用nodejs后端实现登录验证_第13张图片

 

再定义save和find方法

使用nodejs后端实现登录验证_第14张图片

4.在controller里面的position.js里面添加处理逻辑

 findAll方法

使用nodejs后端实现登录验证_第15张图片

save方法

使用nodejs后端实现登录验证_第16张图片

 

 

 在前端使用隐藏的input 进行ID的传输

1

 

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

11

1

111

1

14

4

转载于:https://www.cnblogs.com/amazingli/p/11057998.html

你可能感兴趣的:(使用nodejs后端实现登录验证)