前端:vue3+ts,后端:koa2+jwt,实现登陆功能(后端部分上篇)

简介: 前端:vue3+ts,后端:koa2+jwt,实现登陆功能(后端部分上篇)

前置,搭建项目并集成log4j实现日志系统



详细的介绍了koa2的环境搭建以及log4j的日志系统

# koa2搭配log4js实现日志监控


第一步,安装插件



1. 安装koa-jwt插件


npm install koa-jwt
复制代码


用法示例:


网络异常,图片无法展示
|

我们仅需要用到这个用法就可以了, key是前端的headers.authentication的token前置 secret是解密需要的密钥,login的时候,获取的token的时候,跟解密的时候,这个secret是需要一致的,不然无法解密成功


2. 安装jsonwebtoken插件


npm install jsonwebtoken
复制代码


网络异常,图片无法展示
|


var jwt = require('jsonwebtoken');
var token = jwt.sign({ foo: 'bar' }, 'xiaohe', { expiresIn: '2d' })
复制代码


foo: 'bar'  是需要加密的键值对

'xiaohe'是密钥

expiresIn 是token的有效时间,这里设置的是两天


3. 安装mongoose数据库


npm install mongoose
复制代码


实现



1. 先连接数据库

创建一个config文件夹,里面创建db.jsindex.js

db.js用于连接数据库,并打印对应的连接成功或失败


/**
 * 数据库连接
 * @auther 何小生
 */
const mongoose = require('mongoose')  // 引入mongoose
const config = require('./index')     // 引入config配置信息
const log4js = require('../utils/log4') // 引入log4j的日志系统
// mongoose连接数据库
mongoose.connect(config.URL, {
    useNewUrlParser: true,
    useUnifiedTopology: true
})
const db = mongoose.connection
// 打印数据库连接成功
db.on('error', () => {
    log4js.error('*** 数据库连接失败 ***')
})
// 打印数据库连接失败
db.on('open', () => {
    log4js.info('*** 数据库连接成功 ***')
})
复制代码


config.js 用于配置数据库信息的基础文件


/**
 *  配置文件
 */
module.exports = {
    URL: 'mongodb://127.0.0.1:27017/xiaohe'
}
复制代码


网络异常,图片无法展示
|


本地安装robo3T,用于做数据库可视化工具,数据库用的是mongooseDB

网络异常,图片无法展示
|


连接数据库,并创建对应的xiaohe数据库


网络异常,图片无法展示
|


在demo里面创建xiaohe数据库


网络异常,图片无法展示
|


在xiaohe数据库的collections里面,创建user表


网络异常,图片无法展示
|


点击insert document,往user表里填充数据


网络异常,图片无法展示
|


{
    "_id" : ObjectId("6118cc7ee27588cca19a8b70"),
    "state" : 1,
    "role" : "0",
    "roleList" : [ 
        "60180b07b1eaed6c45fbebdb", 
        "60150cb764de99631b2c3cd3", 
        "60180b59b1eaed6c45fbebdc"
    ],
    "deptId" : [ 
        "60167059c9027b7d2c520a61", 
        "60167345c6a4417f2d27506f"
    ],
    "userId" : 1000002,
    "username" : "admin",
    "password" : "admin",
    "userEmail" : "admin@imooc.com",
    "createTime" : "2021-01-17T13:32:06.381Z",
    "lastLoginTime" : "2021-01-17T13:32:06.381Z",
    "__v" : 0,
    "job" : "前端架构师",
    "mobile" : "17611020000"
}
复制代码


网络异常,图片无法展示
|


至此,连接数据库和一些准备工作已经基本完成,可以准备做下一步的操作了

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
|
9月前
|
JavaScript 前端开发 Java
制造业ERP源码,工厂ERP管理系统,前端框架:Vue,后端框架:SpringBoot
这是一套基于SpringBoot+Vue技术栈开发的ERP企业管理系统,采用Java语言与vscode工具。系统涵盖采购/销售、出入库、生产、品质管理等功能,整合客户与供应商数据,支持在线协同和业务全流程管控。同时提供主数据管理、权限控制、工作流审批、报表自定义及打印、在线报表开发和自定义表单功能,助力企业实现高效自动化管理,并通过UniAPP实现移动端支持,满足多场景应用需求。
858 1
|
5月前
|
存储 前端开发 安全
实现“永久登录”:针对蜻蜓Q系统的用户体验优化方案(前端uni-app+后端Laravel详解)-优雅草卓伊凡
实现“永久登录”:针对蜻蜓Q系统的用户体验优化方案(前端uni-app+后端Laravel详解)-优雅草卓伊凡
262 5
|
4月前
|
JavaScript 安全
vue3使用ts传参教程
Vue 3结合TypeScript实现组件传参,提升类型安全与开发效率。涵盖Props、Emits、v-model双向绑定及useAttrs透传属性,建议明确声明类型,保障代码质量。
432 0
|
10月前
|
移动开发 前端开发 JavaScript
Vue与React两大前端框架的主要差异点
以上就是Vue和React的主要差异点,希望对你有所帮助。在选择使用哪一个框架时,需要根据项目的具体需求和团队的技术栈来决定。
562 83
|
11月前
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
581 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
10月前
|
前端开发 Java 物联网
智慧班牌源码,采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署
智慧班牌系统是一款基于信息化与物联网技术的校园管理工具,集成电子屏显示、人脸识别及数据交互功能,实现班级信息展示、智能考勤与家校互通。系统采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署与私有化定制。核心功能涵盖信息发布、考勤管理、教务处理及数据分析,助力校园文化建设与教学优化。其综合性和可扩展性有效打破数据孤岛,提升交互体验并降低管理成本,适用于日常教学、考试管理和应急场景,为智慧校园建设提供全面解决方案。
587 70
|
9月前
|
存储 消息中间件 前端开发
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
校园圈子系统校园论坛小程序采用uni-app前端框架,支持多端运行,结合PHP后端(如ThinkPHP/Laravel),实现用户认证、社交关系管理、动态发布与实时聊天功能。前端通过组件化开发和uni.request与后端交互,后端提供RESTful API处理业务逻辑并存储数据于MySQL。同时引入Redis缓存热点数据,RabbitMQ处理异步任务,优化系统性能。核心功能包括JWT身份验证、好友系统、WebSocket实时聊天及活动管理,确保高效稳定的用户体验。
516 4
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
|
10月前
|
存储 前端开发 JavaScript
调用DeepSeek API增强版纯前端实现方案,支持文件上传和内容解析功能
本方案基于DeepSeek API增强版,提供纯前端实现的文件上传与内容解析功能。通过HTML和JavaScript,用户可选择文件并调用API完成上传及解析操作。方案支持多种文件格式(如PDF、TXT、DOCX),具备简化架构、提高响应速度和增强安全性等优势。示例代码展示了文件上传、内容解析及结果展示的完整流程,适合快速构建高效Web应用。开发者可根据需求扩展功能,满足多样化场景要求。
3077 64
|
9月前
|
JavaScript 前端开发 编译器
Vue与TypeScript:如何实现更强大的前端开发
Vue.js 以其简洁的语法和灵活的架构在前端开发中广受欢迎,而 TypeScript 作为一种静态类型语言,为 JavaScript 提供了强大的类型系统和编译时检查。将 Vue.js 与 TypeScript 结合使用,不仅可以提升代码的可维护性和可扩展性,还能减少运行时错误,提高开发效率。本文将介绍如何在 Vue.js 项目中使用 TypeScript,并通过一些代码示例展示其强大功能。
391 22
|
8月前
|
人工智能 监控 前端开发
AI工具:前端与后端的终极对决?谁将成为新时代的宠儿?
深入探讨AI工具对前端和后端开发的具体影响、各自的机遇与挑战,并分析未来开发者如何驾驭AI,实现能力跃迁。
456 0