【搭建博客服务端部分】第三部分 登录接口
3. 登录接口
在这里我个人习惯使用ApiPost这个软件进行测试接口,大家可以用自己习惯使用软件
const express = require('express')
const { db, genid } = require('../db/dbUtil')
const {v4:uuidv4} = require('uuid')
// 创建路由
const router = express.Router()
// 编写路由
router.post('/login', (req, res) => {
// 解构出前端传入的数据
const {account,password} = req.body
// 查找数据库是否有匹配的数据
// ? 占位,传入的参数需要一一对应
db.async.all('select * from admin where account = ? AND password = ? ',[account,password]).then(({error,rows}) =>{
if(error == null && rows.length > 0){
// 查到用户数据,生成token,给前端返回数据,并且将token存储到数据库中
let token = uuidv4() // 生成唯一值
// 下面代码的意思:更新admin这张表,设置token值,条件是id为多少
db.async.run('UPDATE admin set token = ? where id = ?',[token,rows[0].id])
let loginInfo = rows[0]
loginInfo.token = token
loginInfo.password = null
res.send({
code:200,
msg:'登陆成功!',
data:loginInfo
})
}else{
// 查不到用户信息,返回失败
res.send({
code:500,
msg:'登录失败!'
})
}
})
})
module.exports = router
接口写法记得到app.js中去注册,通过测试可以实现获取数据,数据库也能够更新


总结
以上就是今天要讲的内容,希望对大家有所帮助!!!
本文介绍了一个基于Express的博客登录接口实现方法,通过API Post软件进行测试,并详细解释了如何使用UUID生成唯一标识符作为Token,以及如何在数据库中更新用户状态。
7262

被折叠的 条评论
为什么被折叠?



