使用nodejs后端实现登录验证

 

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

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

其中rmvc。

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

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

v,view,负责模板的样式

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

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

keys,负责生成公钥和私钥

public,静态资源存放

utils,连接数据库

 

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

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

 

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

1.singup(注册)函数

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

 如果没有查到,

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

 

 对密码就行加密并替换

2.sigin(登录)函数

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

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

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

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

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

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

router.get('/issignin', oAuthMiddleWare)

 

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

匹配成功就返回issignin = true

 

 

1在后端实现添加操作

效果如图

后端的操作,

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

当路由跳转到这些路径的时候执行对应的路由文件

2.在router中的position.js文件中配置

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

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

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

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

先定义存入数据的格式

 

再定义save和find方法

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

 findAll方法

save方法

 

 

 在前端使用隐藏的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

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值