如何使用JWT做简单的登录操作

本文详细介绍了如何在Node.js环境中安装和配置mysql和jsonwebtoken插件,创建数据库连接池,实现登录接口,并通过express设置路由调用API。还涉及到了前端页面与后端的交互以及SQL语句的组织。
摘要由CSDN通过智能技术生成

为了照顾大部分的小伙伴们,我把流程再说详细一点。开始我们肯定要装mysql和jsonwebtoken这两个插件的,为了更加方便之后,我还装了express,目的就是为了使用路由的时候方便操作。

打通数据库

api.js文件

const mysql = require(‘mysql’);

const sqlMap = require(‘./sqlMap’);

//创建链接对象

const pool = mysql.createPool({

host: ‘xx.xx.xxx.xxx’,

user: ‘root’,

port: 3306,

password: ‘xxxxxx’,

database: ‘xxxxxx’,

multipleStatements: true // 多语句查询

})

//写一个登录接口

module.exports = {

login(req, res, next) {

var username = req.query.username;

var password = req.query.password;

pool.getConnection((err, connection) => {

var sql = sqlMap.login; //这里有一个sqlMap对象,用来写sql语句

connection.query(sql,[username,password] ,(err, result) => {

res.json(result);

connection.release();

})

})

},

//接下来可以写更多的接口

}

还有写一个接口的路由,就是你请求这个的时候就会连接数据库和查询数据库

router.js文件

const express = require(‘express’);

const router = express.Router();

const api = require(‘./api’); //这里引入上面的文件

router.get(‘/login’, (req, res, next) => {

api.login(req, res, next);

});

//最后记得导出

module.exports = router;

上面我还有用到一个sqlMap的一个对象,我们单独写一个,就是为了以后方便,而且耦合性更低,容易扩展。

var sqlMap = {

login: ‘select * from teacher where teacherName = ? and password = ?;’,

}

//最后也记得要导出

module.exports = sqlMap;

这样我们在文件中引入的时候就可以使用这个对象了,这里面还可以写很多sql的语句查询。

说了这么多,我们肯定要启动服务的,那么我们就简单起一个服务,可以调用我们写的所有接口,这是一个主文件,我们把它命名为index.js文件

const routerApi = require(‘./router’);

const path = require(‘path’);

const bodyParser = require(‘body-parser’); // post 数据解析

const express = require(‘express’);

const app = express();

app.use(bodyParser.json());

// 后端api路由

app.use(‘/api’, routerApi);

// 监听端口

app.listen(3000);

console.log(‘success listen at port:3000…’);

这样我们node index.js之后就会监听3000端口了,到此我们的服务启动完毕,数据库部分也就打通了。

前端页面

这里我们作为讲解,就不用写一些很好看的页面,有两个输入框就可以了,vue有双向数据绑定的功能,这样我们就可以很方便地获取输入框里面的内容,使用账号密码传给后端做sql查询。怎么样,是不是特别简单?

form: {

username: “”,

password: “”,

}

比如在data下面我们就这样来存储输入框的数据,如果大家可以做一些验证之类的操作,使用elementui组件库,你会发现新的世界。这里就不展开了。

然后再methods里面写一个login方法,用来与后端进行数据交互,这里也是很简单的操作。

//在script标签下面引入:

//const jwt = require(“jsonwebtoken”);

//const secret = “your string”; //自己的密钥

login() {

this.$axios

.get(“/api/login”, {//请求的接口

params: { username: form.username, password: form.password }//传递参数

})

.then(res => {

if (res.data.length > 0) {//假如返回有数据就使用token加密一下

const token = jwt.sign(

{

name: res.data[0]//这里就是数据库返回的用户相关的信息

},

secret,//这是一个密钥,可以使用你喜欢的字符串

{

expiresIn: 86400 //秒,到期时间,一天

}

);

this.$store.commit(“SET_TOKEN”, token);//写入token

this.$router.replace(“home”);//跳转到主页

} else {

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)

核心竞争力,怎么才能提高呢?

成年人想要改变生活,逆转状态?那就开始学习吧~

万事开头难,但是程序员这一条路坚持几年后发展空间还是非常大的,一切重在坚持。

为了帮助大家更好更高效的准备面试,特别整理了《前端工程师面试手册》电子稿文件。

前端面试题汇总

JavaScript

性能

linux

前端资料汇总

完整版PDF资料免费分享,只需你点赞支持,动动手指点击此处即可领取了

前端工程师岗位缺口一直很大,符合岗位要求的人越来越少,所以学习前端的小伙伴要注意了,一定要把技能学到扎实,做有含金量的项目,这样在找工作的时候无论遇到什么情况,问题都不会大。

mg.cn/img_convert/ed368cc25284edda453a4c6cb49916ef.png)

前端资料汇总

完整版PDF资料免费分享,只需你点赞支持,动动手指点击此处即可领取了

前端工程师岗位缺口一直很大,符合岗位要求的人越来越少,所以学习前端的小伙伴要注意了,一定要把技能学到扎实,做有含金量的项目,这样在找工作的时候无论遇到什么情况,问题都不会大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值