中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

nodejs如何實現用戶登錄路由功能

發布時間:2021-04-19 14:10:57 來源:億速云 閱讀:171 作者:小新 欄目:web開發

這篇文章給大家分享的是有關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

<!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如何實現用戶登錄路由功能

感謝各位的閱讀!關于“nodejs如何實現用戶登錄路由功能”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平昌县| 鲁山县| 德江县| 吉木乃县| 蓬安县| 武汉市| 年辖:市辖区| 贵德县| 封开县| 封丘县| 石泉县| 潍坊市| 连南| 云梦县| 玉龙| 如皋市| 康乐县| 天台县| 临湘市| 洛扎县| 彰化县| 普洱| 无极县| 郓城县| 巴东县| 自治县| 藁城市| 阿克| 洪雅县| 遂宁市| 湘阴县| 尤溪县| 东城区| 巩留县| 武冈市| 高淳县| 通化市| 贡觉县| 上饶市| 兴隆县| 雅江县|