index.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. // 添加账本
  2. import express from "express";
  3. import { generateToken, aes_encrypt, shanghaiTime } from "#utils";
  4. import { isHaveUserByUserId, auth_insert, isLoginUserByUserId } from "#db";
  5. const router = express.Router();
  6. import { v4 as uuidv4 } from "uuid";
  7. // middleware that is specific to this router
  8. router.use(function timeLog(req, res, next) {
  9. console.log("Time: ", Date.now());
  10. next();
  11. });
  12. // 注册
  13. router.post("/register", async function (req, res) {
  14. const { account, name = "", password = "" } = req.body;
  15. const user_id = uuidv4();
  16. if (await isHaveUserByUserId({ user_id, account,})) {
  17. res.send({
  18. code: 500,
  19. msg: "当前注册信息有重复,请检查之后重新提交!",
  20. });
  21. return;
  22. }
  23. // 写入数据
  24. await auth_insert({
  25. name,
  26. account,
  27. user_id,
  28. password: aes_encrypt(password),
  29. create_time: shanghaiTime().format("YYYY-MM-DD HH:mm:ss"),
  30. update_time: shanghaiTime().format("YYYY-MM-DD HH:mm:ss"),
  31. });
  32. const token = await getToken(account, password)
  33. res.json({
  34. code: 200,
  35. data: {
  36. token
  37. }
  38. });
  39. });
  40. async function getToken(account, password) {
  41. const islogin = await isLoginUserByUserId({
  42. password: aes_encrypt(password),
  43. account,
  44. });
  45. if(!islogin) return false
  46. delete islogin.password;
  47. delete islogin.login_type;
  48. delete islogin.id;
  49. return generateToken(islogin);
  50. }
  51. // 登陆
  52. router.post("/", async function (req, res) {
  53. const { account, password } = req.body;
  54. const token = await getToken(account, password);
  55. if (!token) {
  56. res.json({
  57. code: 404,
  58. msg: "登录失败,当前用户不存在",
  59. data: {},
  60. });
  61. return;
  62. }
  63. res.json({
  64. code: 200,
  65. msg: "登录成功",
  66. data: { token },
  67. });
  68. // res.send("authors home page");
  69. });
  70. export default router;