下线用户——删除Token

前置内容

  1. 【Nodejs express 连接Mysql】: https://www.hyz.cool/articles/207
  2. 【Nodejs express 连接 Redis】: https://www.hyz.cool/articles/208
  3. 【统一后端返回数据格式——云剪切板】: https://www.hyz.cool/articles/209

路由

  • TokenController.js
const express = require("express")

const TokenController = express.Router();

const  TokenService = require("../services/TokenService")

/**
 * 删除token(下线用户)
 */
TokenController.delete("/remove",TokenService.remove)


module.exports = TokenController
js

数据库访问

  • TokenDao.js
import {Query} from "../services/MysqlService";

export const removeByUserId = (userId) => {
    return Query("DELETE FROM `tb_token` WHERE `user_id` = ?", [userId])
}
js

服务实现

  • TokenService.js
import Result from "../utils/Result";
const TokenDao = require("../daos/TokenDao")

const validator = require("express-validator");

/**
 * 删除
 */
export const remove = [
    validator.query("userId", "用户id不能为空").isLength({min: 1}),
    (req, res, next) => {
        //校验参数
        let validationResult = validator.validationResult(req)
        if (!validationResult.isEmpty()) return Result.result(res, Result.invalidParams(validationResult.array()));

        //拿到参数
        let {userId} = req.query

        getLoginUser(req).then(userDTO => {

            if (!userDTO) return Result.result(res, Result.notLogin())
            if ((userDTO.id + "") !== (userId + "")) return Result.result(res, Result.noAuth())

            //删除token
            TokenDao.removeByUserId(userId).then(result => {
                return Result.result(res, Result.success("删除成功"))
            }).catch(err => {
                return Result.result(res, Result.failed("删除失败"))
            })

        }).catch(err => {
            return Result.result(res, Result.failed("获取登陆用户失败"))
        })
    }];

js
打赏
  • 微信
  • 支付宝
评论
来发评论吧~
···

歌手: