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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 前端: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"
}
复制代码


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


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

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
vue3+Ts 二次封装ElementUI form表单
【10月更文挑战第8天】
263 59
|
4月前
Vue3中getCurrentInstance如何与ts结合使用
【8月更文挑战第16天】Vue3中getCurrentInstance如何与ts结合使用
207 2
Vue3中getCurrentInstance如何与ts结合使用
|
3月前
|
前端开发
vue3+ts项目中使用mockjs
vue3+ts项目中使用mockjs
314 58
|
1月前
|
存储 JavaScript 前端开发
介绍一下Vue的核心功能
介绍一下Vue的核心功能
|
2月前
|
JavaScript 前端开发 API
|
2月前
|
JavaScript API UED
vue.js怎么实现全屏显示功能
【10月更文挑战第7天】
49 1
|
2月前
|
资源调度 JavaScript UED
如何使用Vue.js实现单页应用的路由功能
【10月更文挑战第1天】如何使用Vue.js实现单页应用的路由功能
|
2月前
|
JavaScript 前端开发
vue3教程,如何手动获取后端数据(入门到精通3,新人必学篇)
本文提供了一个Vue 3教程,讲解了如何使用axios库手动从后端获取数据,包括安装axios、配置后端访问地址、编写路由地址、发起HTTP请求以及在组件中读取和打印响应数据的步骤。
490 0
vue3教程,如何手动获取后端数据(入门到精通3,新人必学篇)
|
4月前
|
存储 JavaScript
任务清单小功能的实现(任务的增、删、改、查、存储)使用Vue实现
这篇文章介绍了使用Vue实现的任务清单小功能,包括任务的增加、删除、修改、查看以及数据存储。文章通过视频演示展示了实现效果,重点讲解了编辑功能的实现,并通过代码实例展示了编辑功能的核心代码,同时提供了完整的代码下载链接以及以往练习的概览。
任务清单小功能的实现(任务的增、删、改、查、存储)使用Vue实现
|
3月前
|
JavaScript 前端开发 UED
组件库实战 | 用vue3+ts实现全局Header和列表数据渲染ColumnList
该文章详细介绍了如何使用Vue3结合TypeScript来开发全局Header组件和列表数据渲染组件ColumnList,并提供了从设计到实现的完整步骤指导。