广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Express实现登录验证
  • 711
分享到

Express实现登录验证

2024-04-02 19:04:59 711人浏览 八月长安
摘要

本文实例为大家分享了Express实现登录验证的具体代码,供大家参考,具体内容如下 Express实现的路由登录,这套代码适用于很多场景,特此记录,以备后用。 首先是主文件:serv

本文实例为大家分享了Express实现登录验证的具体代码,供大家参考,具体内容如下

Express实现的路由登录,这套代码适用于很多场景,特此记录,以备后用。

首先是主文件:server.js


const express = require('express');
const static = require('express-static');
const bodyParser = require('body-parser');
const multer = require('multer');
// 配置文件上传的路径,此处为本地地址
const multerObj = multer({ dest: './static/upload' });
const cookieParser = require('cookie-parser');
const cookieSession = require('cookie-session');
const consolidate = require('consolidate');
 
// 子路由的页面需要使用,此处确保已安装
const expressRoute = require('express-route');
const Mysql = require('mysql');
 
var server = express();
server.listen(8080);
 
// 处理提交的数据和文件
server.use(bodyParser.urlencoded());
server.use(multerObj.any());
 
// cookie及签名处理
server.use(cookieParser());
(function () {
    var keys = [];
    for (var i = 0; i < 100000; i++) {
        keys[i] = 'secret' + Math.random();
    };
    server.use(cookieSession({
        name: 'session_id',
        keys: keys,
        maxAge: 20 * 60 * 1000  
    }));
})();
 
// 模板渲染
server.engine('html', consolidate.ejs);
server.set('views', 'template');
server.set('view engine', 'html');
 
// 路由拆分
server.use('/', require('./route/WEB/index.js')());        //前台路由
server.use('/admin/', require('./route/admin/index.js')());   //后台路由
 
// 静态数据
server.use(static('./static/'));

以上这是一个整体的结构框架,后续只需要专注处理路由部分即可,以下是后台路由部分。


const express = require('express');
 
module.exports = function () {
 
    var router = express.Router();
 
    // 未登录前
    router.use((req, res, next) => {
        if (!req.session['admin_id'] && req.url != '/login') { 
            res.redirect('/admin/login');
        } else {
            next();
        }
    });
    router.use('/login', require('./login')());
 
    
    // 正常登录后后其它路由
    router.get('/', (req, res) => {
        res.render('admin/index.ejs', {});
    });
    // 根据业务添加路由
    router.use('/banners', require('./banners')());
 
    return router;
};

express的模块化其实就是按路由一级一级的来定义的,接下来一起来看一下上面代码中login代码的实现.


const express = require('express');
// 封装的公共方法(md5)加密模块
const common = require('../../libs/common');
const mysql = require('mysql');
 
var db = mysql.createPool({ 
    host: 'localhost', 
    user: 'root', 
    passWord: '123456', 
    database: 'blog' 
});
 
module.exports = function () {
    var router = express.Router();
    router.get('/', (req, res) => {
        res.render('admin/login.ejs', {});
    });
    
    router.post('/', (req, res) => {
        var username = req.body.username;
        var password = common.md5(req.body.password + common.MD5_SUFFIX);
        db.query(`SELECT * FROM admin_table WHERE username='${username}'`, (err, data) => {
            if (err) {
                // 返回的数据很简单,实际要返回一个对象
                res.status(500).send('数据库连接错误').end();
            } else {
                if (data.length == 0) {
                    res.status(400).send('管理员不存在').end();
                } else {
                    if (data[0].password == password) {
                        req.session['admin_id'] = data[0].ID;
                        res.redirect('/admin/');
                    } else {
                        res.status(400).send('密码错误').end();
                    }
                }
            }
        });
    });
 
    return router;
};

大家可能注意到上面的代码中有个common模块的引入,这个文件主要是定义了一些公共的方法,如md5加密方法。


const crypto = require('crypto');
module.exports = {
    MD5_SUFFIX: 'FDSW$t34tregt5tO&$(#RHuyoyiUYE*&OI$HRLuy87odlfh)',
    md5: function (str) {
        var obj = crypto.createHash('md5');
        obj.update(str);
        return obj.digest('hex');
    }
};

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: Express实现登录验证

本文链接: https://www.lsjlt.com/news/137932.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Express实现登录验证
    本文实例为大家分享了Express实现登录验证的具体代码,供大家参考,具体内容如下 Express实现的路由登录,这套代码适用于很多场景,特此记录,以备后用。 首先是主文件:serv...
    99+
    2022-11-12
  • Express + Session 实现登录验证功能
    1. 写在前面 当我们登录了一个网站,在没有退出登录的情况下,我们关闭了这个网站 ,过一段时间,再次打开这个网站,依然还会是登录状态。这是因为,当我们登录了一个网站,服务器会保存我们的登录状态,直到我们退出...
    99+
    2022-06-04
    功能 Express Session
  • Android实现验证码登录
    本文实例为大家分享了Android实现验证码登录的具体代码,供大家参考,具体内容如下 结果展示 1.导包 1.1在项目的gradle中导入 maven { url "https...
    99+
    2022-11-11
  • VUE实现token登录验证
    本文实例为大家分享了VUE实现token登录验证的具体代码,供大家参考,具体内容如下 实现这个登录功能的过程真是一波三折,中途出现了bug,整了两三天才解决了问题,心力交瘁,简直一个...
    99+
    2022-11-12
  • vue实现登录验证码
    本文实例为大家分享了vue实现登录验证码的具体代码,供大家参考,具体内容如下 先来demo效果图 canvas验证码组件(可直接复制,无需改动) <template>...
    99+
    2022-11-12
  • JDBC怎么实现验证登录
    这篇文章主要介绍“JDBC怎么实现验证登录 ”,在日常操作中,相信很多人在JDBC怎么实现验证登录 问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JDBC怎么实现验证登录 ”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-02
  • Python实现简单登录验证
    本文实例为大家分享了简单的Python登录验证,供大家参考,具体内容如下 编写登录接口 要求:1、输入用户名密码    2、认证成功后显示欢迎信息    3、输错三次后锁定 #coding=utf-8 ...
    99+
    2022-06-04
    简单 Python
  • vue+springboot实现登录验证码
    本文实例为大家分享了vue+springboot实现登录验证码的具体代码,供大家参考,具体内容如下 先看效果图 在login页面添加验证码html 在后端pom文件添加kaptc...
    99+
    2022-11-12
  • Ajax登录验证实现代码
    目录 package cn.hp.util; import java.sql.*; public class JDBCUtils { static Connection c...
    99+
    2022-11-12
  • JavaScript实现登录滑块验证
    本文实例为大家分享了JavaScript实现登录滑块验证的具体代码,供大家参考,具体内容如下 html代码 <div class="login-select"> ...
    99+
    2022-11-12
  • java登录验证码实现代码
    VerifyCodeServlet.java类:复制代码 代码如下:package com.spring.controller;import java.awt.Color; ...
    99+
    2022-11-15
    java 验证码
  • Vue如何实现验证码登录
    本文小编为大家详细介绍“Vue如何实现验证码登录”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue如何实现验证码登录”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。效果展示第一步:创建验证码组件这里是组件的代码...
    99+
    2023-06-29
  • php如何实现验证码登录
    本文操作环境:windows10系统、php 7、thinkpad t480电脑。验证码在我们的日常生活中非常常见,使用验证码有诸多好处,如:防止恶意的破解密码。如一些黑客为了获取到用户信息,通过不同的手段向服务器发送数据,验证猜测用户信息...
    99+
    2017-10-10
    php 验证码
  • android studio 实现短信验证 登录
    登录 http://www.mob.com/ 注册 创建项目 # 接着帖 我的完整代码 MainActivity package wlt...
    99+
    2022-06-06
    Android Studio studio Android
  • vue实现图形验证码登录
    本文实例为大家分享了vue实现图形验证码登录的具体代码,供大家参考,具体内容如下 1、效果图 2、在components下面新建文件identify.vue,内容: <t...
    99+
    2022-11-12
  • vue实现登录时滑块验证
    本文实例为大家分享了vue实现登录时滑块验证的具体代码,供大家参考,具体内容如下 1.效果图 2. 新建 SliderCheck.vue组件 <template> &...
    99+
    2022-11-13
  • vue实现手机验证码登录
    本文实例为大家分享了vue实现手机验证码登录的具体代码,供大家参考,具体内容如下 验证码 <template> <div> <el-ma...
    99+
    2022-11-12
  • javaweb如何实现登录验证码
    这篇文章给大家分享的是有关javaweb如何实现登录验证码的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。使用:Controller:生成验证码@RequestMapping("/user/check.j...
    99+
    2023-05-30
    javaweb
  • java实现登录验证码功能
    本文实例为大家分享了java实现登录验证码功能的具体代码,供大家参考,具体内容如下 登录验证码 登录验证是大多数登录系统都会用到的一个功能,它的验证方式也是有很多种,例如登录验证码,...
    99+
    2022-11-12
  • 如何用JDBC实现验证登录
    这篇文章主要介绍“如何用JDBC实现验证登录”,在日常操作中,相信很多人在如何用JDBC实现验证登录问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用JDBC实现验证登录”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作