美文网首页
登陆与登出功能

登陆与登出功能

作者: 是新来的啊强呀 | 来源:发表于2020-05-08 15:14 被阅读0次

    登陆
    前端代码

    // header.vue中
    <div class="md-modal modal-msg md-modal-transition" v-bind:class="{'md-show':loginModalFlag}">
          <div class="md-modal-inner">
            <div class="md-top">
              <div class="md-title">Login in</div>
              <button class="md-close" @click="loginModalFlag=false">Close</button>
            </div>
            <div class="md-content">
              <div class="confirm-tips">
                <div class="error-wrap">
                  <span class="error error-show" v-show="errorTip">用户名或者密码错误</span>
                </div>
                <ul>
                  <li class="regi_form_input">
                    <i class="icon IconPeople"></i>
                    <input type="text" tabindex="1" name="loginname" v-model="userName" class="regi_login_input regi_login_input_left" placeholder="User Name" data-type="loginname">
                  </li>
                  <li class="regi_form_input noMargin">
                    <i class="icon IconPwd"></i>
                    <input type="password" tabindex="2"  name="password" v-model="userPwd" class="regi_login_input regi_login_input_left login-input-no input_text" placeholder="Password" @keyup.enter="login">
                  </li>
                </ul>
              </div>
              <div class="login-wrap">
                <a href="javascript:;" class="btn-login" @click="login">登  录</a>
              </div>
            </div>
          </div>
        </div>
        <div class="md-overlay" v-if="loginModalFlag" @click="loginModalFlag=false"></div>
    
    methods:{
            login(){
              console.log("userName"+this.userName);
              if(!this.userName || !this.userPwd){
                this.errorTip = true;
                return;
              }
              axios.post("/users/login",{
                userName:this.userName,
                userPwd:this.userPwd,
              }).then((response)=>{
                let res = response.data;
                if(res.status == "0"){
                  this.errorTip = false;
                  this.loginModalFlag = false;
                  this.nickName = res.result.userName;
                  // to-do
                }else{
                  this.errorTip = true;
                }
              });
            },
            logOut(){
              axios.post("/users/logout").then((response)=>{
                let res = response.data;
                if(res.status == '0'){
                  this.nickName='';
                }
              })
            }
        }
    

    后端,在server/models/user.js中创建user模型

    var moogoose = require('mongoose');
    let userSchema = new moogoose.Schema({
      "userId":String,
      "userName":String,
      "userPwd":String,
      "orderList":Array,
      "cartList":[
        {
          "productId":String,
          "productName":String,
          "salePrice":String,
          "productImage":String,
          "checked":String,
          "productNum":String
        }],
      "addressList":Array
    });
    module.exports = moogoose.model("User",userSchema)
    

    server/routes/users.js创建二级路由

    var express = require('express');   // 导入express框架
    var router = express.Router();
    var User = require('../models/user');  // 导入user模型
    // 登陆请求
    router.post('/login',function (req,res,next) {
      var param ={
        userName:req.body.userName,
        userPwd:req.body.userPwd
      }
      User.findOne(param,function (err,doc) {  // 根据参数到数据库中寻找
        if(err){
          res.json({
            status:"1",
            msg:err.message
          })
        }else{
          if(doc){
            // 将用户ID存放在cookie中
            res.cookie("userId",doc.userId,{
              path:'/',  // cookie存放的路径
              maxAge:1000*60*60  // cookie周期,一小时
            })
            // 将信息存在session当中
            // req.session.user = doc;
            res.json({
              status:'0',
              mag:'',
              result:{
                userName:doc.userName
              }
            })
          }
        }
      })
    })
    
    router.post('/logout',function (req,res,next) {
      // 清楚cookie中的用户ID
      res.cookie("userId","",{
        path: '/',
        maxAge: -1
      })
      res.json({
        status:'0',
        msg:'',
        result:''
      })
    });
    module.exports = router;
    

    相关文章

      网友评论

          本文标题:登陆与登出功能

          本文链接:https://www.haomeiwen.com/subject/dmvxnhtx.html