国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

nodejs實現用戶登錄路由功能

2019-11-19 11:29:26
字體:
來源:轉載
供稿:網友

經過前面幾次的學習,已經可以做下小功能,今天要實現的事用戶登錄路由。

一、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

<!DOCTYPE html><html><head><meta charset="UTF-8"><title>用戶登錄</title><link rel="stylesheet"type="text/css" href="/static/css/styles.css" rel="external nofollow" /></head><body><div class="form-container"> <p class="form-header">登錄</p> <form method="POST" >  <label>用戶名:</label>   <input type="text" name="username"><br>   <label>密碼:</label>   <input type="password" name="password"><br>   <input type="submit" value="登錄"> </form> </div> <a href="/signup" rel="external nofollow" >注冊</a> <hr> <%=msg %></body></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);

頁面效果

總結

以上所述是小編給大家介紹的nodejs中實現用戶登錄路由功能,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 仁寿县| 洪洞县| 扶余县| 滨海县| 新乐市| 庆云县| 滦平县| 安化县| 霞浦县| 轮台县| 湘潭县| 冀州市| 新安县| 天水市| 无棣县| 德兴市| 拜城县| 临洮县| 津南区| 台中县| 长子县| 洱源县| 弥渡县| 奉节县| 界首市| 积石山| 越西县| 临清市| 宝鸡市| 福州市| 吴桥县| 白山市| 昭平县| 南昌县| 青川县| 西峡县| 武川县| 湘阴县| 江阴市| 岑巩县| 肥西县|