nodejs html 权限选择,nodejs实现用户登录路由功能

经过前面几次的学习,已经可以做下小功能,今天要实现的事用户登录路由。

一、users_model.js  功能:定义用户对象模型

var mongoose=require('mongoose'),

Schema=mongoose.Schema;

var UserSchema=new Schema({

username:{type:String,unique:true},

email:String,

color:String,

hashed_password:String

});

mongoose.model('User',UserSchema);

二、users_controller.js  功能:为Express服务器实现用户登录路由

var crypto=require('crypto');

var mongoose=require('mongoose'),User=mongoose.model('User');

function hashPW(pwd){

return crypto.createHash('sha256').update(pwd).

digest('base64').toString();

}

//实现用户登录路由

exports.login=function (req,res){

User.findOne({username:req.body.username})

.exec(function(err,user){

if(!user){

err='User Not Found';

}else if(user.hashed_password===hashPW(req.body.password.toString())){

req.session.regenerate(function(){

req.session.user=user.id;

req.session.username=user.username;

req.session.msg='Authenticated as ' +user.username;

res.redirect('/');

});

}else{

err='Authentication failed. ';

}

if(err){

req.session.regenerate(function(){

req.session.msg=err;

res.redirect('/login');

});

}

});

};

三、login.html

用户登录

登录

用户名:

密码:

注册


四、routes.js 功能:为Express服务器实现处理Web请求路由

var crypto=require('crypto');

var express=require('express');

module.exports=function(app){

var users=require('./controllers/users_controller');

app.use('/static',express.static('./static')).

use('/lib',express.static('../lib')

);

app.get('/login',function(req,res){

if(req.session.user){

res.redirect('/');

}

res.render('login',{msg:req.session.msg})

});

app.post('/login',users.login);

页面效果

95e5205a62cf955beae2310c90aab06f.png

总结

以上所述是小编给大家介绍的nodejs中实现用户登录路由功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值