Browse Source

🐞 fix: 修复验证码错误的问题

Pchen. 1 year ago
parent
commit
446a9ee0ab
5 changed files with 163 additions and 2 deletions
  1. 1 1
      apis/Captcha/SendEmail.js
  2. 65 0
      apis/QK/Rule/AddRule.js
  3. 49 0
      apis/QK/Rule/DeleteRule.js
  4. 47 0
      apis/QK/Rule/GetRule.js
  5. 1 1
      apis/User/Login.js

+ 1 - 1
apis/Captcha/SendEmail.js

@@ -25,7 +25,7 @@ class SendEmail extends API {
 
         try {
             const code = await Redis.get(`captcha:${id}`);
-            if (!code || code != text)
+            if (!code || code != text.toLowerCase())
                 return res.json({
                     ...BaseStdResponse.SMS_CHECK_FAIL,
                     msg: '验证码输入错误或已过期'

+ 65 - 0
apis/QK/Rule/AddRule.js

@@ -0,0 +1,65 @@
+const API = require("../../../lib/API");
+const db = require("../../../plugin/DataBase/db");
+const AccessControl = require("../../../lib/AccessControl");
+const { BaseStdResponse } = require("../../../BaseStdResponse");
+
+class AddRule extends API {
+    constructor() {
+        super()
+
+        this.setPath('/QK/Rule')
+        this.setMethod('POST')
+    }
+
+    async onRequest(req, res) {
+        let {
+            uuid,
+            session,
+            id,
+            name,
+            account,
+            crouse,
+            state
+        } = req.body
+
+        if ([uuid, session, name, account, crouse].some(value => value === '' || value === null || value === undefined) || (loop && !day_of_week))
+            return res.json({
+                ...BaseStdResponse.MISSING_PARAMETER
+            })
+
+        // 检查 session
+        if (!await AccessControl.checkSession(uuid, session))
+            return res.status(401).json({
+                ...BaseStdResponse.ACCESS_DENIED
+            })
+
+        let sql, r
+        const time = new Date().getTime()
+
+        if (!id) {
+            sql = 'INSERT INTO qk_rule (\`name\`, create_user, create_time, account, crouse) VALUES (?, ?, ?, ?, ?)'
+            r = await db.query(sql, [name, uuid, time, account, crouse])
+        } else {
+            sql = 'UPDATE qk_rule SET \`name\` = ?, account = ?, crouse = ?, update_time = ?, \`state\` = ? WHERE id = ? AND create_user = ?'
+            r = await db.query(sql, [name, account, crouse, time, state, id, uuid])
+        }
+
+        try {
+            if (r && r.affectedRows > 0) {
+                res.json({
+                    ...BaseStdResponse.OK
+                })
+            } else {
+                res.json({ ...BaseStdResponse.ERR, endpoint: 7894378, msg: '添加规则失败!数据库错误' })
+            }
+        } catch (err) {
+            this.logger.error(`添加规则失败!${err.stack}`)
+            res.json({
+                ...BaseStdResponse.ERR,
+                msg: "添加规则失败!",
+            });
+        }
+    }
+}
+
+module.exports.AddRule = AddRule;

+ 49 - 0
apis/QK/Rule/DeleteRule.js

@@ -0,0 +1,49 @@
+const API = require("../../../lib/API");
+const db = require("../../../plugin/DataBase/db");
+const AccessControl = require("../../../lib/AccessControl");
+const { BaseStdResponse } = require("../../../BaseStdResponse");
+
+class DeleteRule extends API {
+    constructor() {
+        super();
+
+        this.setPath('/QK/Rule')
+        this.setMethod('DELETE')
+    }
+
+    async onRequest(req, res) {
+        let { uuid, session, id } = req.body
+
+        if ([uuid, session, id].some(value => value === '' || value === null || value === undefined))
+            return res.json({
+                ...BaseStdResponse.MISSING_PARAMETER
+            })
+
+        // 检查 session
+        if (!await AccessControl.checkSession(uuid, session))
+            return res.status(401).json({
+                ...BaseStdResponse.ACCESS_DENIED
+            })
+
+        let sql = 'DELETE FROM qk_rule WHERE id = ? AND create_user = ?'
+        let r = await db.query(sql, [id, uuid])
+
+        try {
+            if (r && r.affectedRows > 0) {
+                res.json({
+                    ...BaseStdResponse.OK
+                })
+            } else {
+                res.json({ ...BaseStdResponse.ERR, endpoint: 7894378, msg: '删除规则失败!数据库错误' })
+            }
+        } catch (err) {
+            this.logger.error(`删除规则失败!${err.stack}`)
+            res.json({
+                ...BaseStdResponse.ERR,
+                msg: "删除规则失败!",
+            });
+        }
+    }
+}
+
+module.exports.DeleteRule = DeleteRule

+ 47 - 0
apis/QK/Rule/GetRule.js

@@ -0,0 +1,47 @@
+const API = require("../../../lib/API");
+const db = require("../../../plugin/DataBase/db");
+const AccessControl = require("../../../lib/AccessControl");
+const { BaseStdResponse } = require("../../../BaseStdResponse");
+
+class GetRule extends API {
+    constructor() {
+        super();
+
+        this.setPath('/QK/Rule')
+        this.setMethod('GET')
+    }
+
+    async onRequest(req, res) {
+        let {
+            uuid,
+            session
+        } = req.query
+
+        if ([uuid, session].some(value => value === '' || value === null || value === undefined))
+            return res.json({
+                ...BaseStdResponse.MISSING_PARAMETER
+            })
+
+        // 检查 session
+        if (!await AccessControl.checkSession(uuid, session))
+            return res.status(401).json({
+                ...BaseStdResponse.ACCESS_DENIED
+            })
+
+        let sql = 'SELECT * FROM qk_rule WHERE create_user = ?'
+        let rows = await db.query(sql, [uuid])
+
+        if (!rows)
+            return res.json({
+                ...BaseStdResponse.MISSING_FILE,
+                msg: '获取规则列表失败!'
+            })
+
+        res.json({
+            ...BaseStdResponse.OK,
+            data: rows
+        })
+    }
+}
+
+module.exports.GetRule = GetRule;

+ 1 - 1
apis/User/Login.js

@@ -29,7 +29,7 @@ class Login extends API {
 
         try {
             const code = await Redis.get(`captcha:${id}`);
-            if (!code || code != captcha)
+            if (!code || code != captcha.toLowerCase())
                 return res.json({
                     ...BaseStdResponse.ERR,
                     msg: '验证码错误或已过期!'