const router = require('koa-router')() const UserDao = require('../dao/UserDao') const crypto = require('crypto') const jwt = require('jsonwebtoken') const UserEntity = require('../entity/UserEntity') router.prefix('/users') /** * 用户登录方法 */ router.post('/login', async (ctx) => { const data = ctx.request.body if (!data.name || !data.password) { return ctx.body = { code: '602', data: null, msg: '参数不合法' } } let password = crypto.createHash('md5').update(data.password).digest('hex') // 对密码进行md5 数据库中保存的是md5后的密码 const result = await UserDao.selectByName(data.name) if(result !== null){ let resultString = JSON.stringify(result) let user = JSON.parse(resultString)[0] if(password === user.password) { let token = jwt.sign({ name: user.user_name, id: user.user_id }, 'token', {expiresIn: '0.5h'}) return ctx.body = { code: '0', data: token, msg: '登录成功' } } else { return ctx.body = { code: '602', data: null, msg: '密码错误' } } } else { return ctx.body = { code: '602', data: null, msg: '用户不存在' } } }) /** * 用户注册方法 */ router.post('/register', async (ctx) => { const data = ctx.request.body if (!data.username || !data.password) { return ctx.body = { code: '602', data: null, msg: '参数不合法' } } let result = await UserDao.selectByName(data.username) let resultString = JSON.stringify(result) let user = JSON.parse(resultString)[0] console.log(user) if(user !== undefined) { return ctx.body = { code: '602', data: null, msg: '用户已存在' } } let userEntity = new UserEntity() userEntity.userName = data.username userEntity.password = data.password userEntity.avatarUrl = data.avatarUrl userEntity.description = data.description UserDao.insert(userEntity) return ctx.body = { code: '0', data: null, msg: '注册成功' } }) /** * 返回用户信息 */ router.get('/info/:id', async (ctx) => { let id = ctx.params.id let result = await UserDao.selectById(id) ctx.body = result }) module.exports = router