| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- 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
|