Browse Source

🐞 fix: 完善QQ登录接口

Pchen. 9 months ago
parent
commit
85eaaf8725
2 changed files with 15 additions and 8 deletions
  1. 4 4
      apis/User/qqLogin/qqLoginStep1.js
  2. 11 4
      apis/User/qqLogin/qqLoginStep2.js

+ 4 - 4
apis/User/qqLogin/qqLoginStep1.js

@@ -1,7 +1,7 @@
-const API = require("../../lib/API")
-const { BaseStdResponse } = require("../../BaseStdResponse")
-const Redis = require('../../plugin/DataBase/Redis')
-const EmailTemplate = require('../../plugin/Email/emailTemplate')
+const API = require("../../../lib/API")
+const { BaseStdResponse } = require("../../../BaseStdResponse")
+const Redis = require('../../../plugin/DataBase/Redis')
+const EmailTemplate = require('../../../plugin/Email/emailTemplate')
 
 
 // 发送邮箱验证码
 // 发送邮箱验证码
 class qqLoginStep1 extends API {
 class qqLoginStep1 extends API {

+ 11 - 4
apis/User/qqLogin/qqLoginStep2.js

@@ -1,6 +1,6 @@
 const API = require("../../../lib/API")
 const API = require("../../../lib/API")
 const { v4: uuidv4 } = require('uuid')
 const { v4: uuidv4 } = require('uuid')
-const Redis = require('../../plugin/DataBase/Redis')
+const Redis = require('../../../plugin/DataBase/Redis')
 const db = require("../../../plugin/DataBase/db")
 const db = require("../../../plugin/DataBase/db")
 const { BaseStdResponse } = require("../../../BaseStdResponse");
 const { BaseStdResponse } = require("../../../BaseStdResponse");
 
 
@@ -46,7 +46,7 @@ class qqLoginStep2 extends API {
         const session = uuidv4()
         const session = uuidv4()
         const time = new Date().getTime()
         const time = new Date().getTime()
 
 
-        let selectSql = 'SELECT username, permission, avatar FROM users WHERE email = ?'
+        let selectSql = 'SELECT uuid, username, permission, avatar FROM users WHERE email = ?'
         let selectRows = await db.query(selectSql, [email])
         let selectRows = await db.query(selectSql, [email])
 
 
         let uuid, username, permission, avatar
         let uuid, username, permission, avatar
@@ -79,6 +79,7 @@ class qqLoginStep2 extends API {
                 })
                 })
             }
             }
 
 
+            uuid = selectRows[0].uuid
             avatar = selectRows[0].avatar
             avatar = selectRows[0].avatar
             username = selectRows[0].username
             username = selectRows[0].username
             permission = selectRows[0].permission
             permission = selectRows[0].permission
@@ -95,10 +96,16 @@ class qqLoginStep2 extends API {
             }
             }
         })
         })
 
 
+        await Redis.del(`email:${email}`)
+
         // 增加登录记录
         // 增加登录记录
         try {
         try {
-            const ip = req.headers['x-forwarded-for']?.split(',')[0].trim() || req.connection.remoteAddress
-            let insertSql = 'INSERT INTO login_history (uuid, time, location, deviceInfo, type, ip)'
+            let ip = req.headers['x-forwarded-for']?.split(',')[0].trim() || req.connection.remoteAddress
+            if (ip.startsWith('::ffff:')) {
+                ip = ip.replace('::ffff:', '');
+            }
+
+            let insertSql = 'INSERT INTO login_history (uuid, time, location, deviceInfo, type, ip) VALUES (?, ?, ?, ?, ?, ?)'
             await db.query(insertSql, [uuid, time, location, deviceInfo, 'qq', ip])
             await db.query(insertSql, [uuid, time, location, deviceInfo, 'qq', ip])
         } catch (error) {
         } catch (error) {
             this.logger.error(`写入登录记录失败!${error}`)
             this.logger.error(`写入登录记录失败!${error}`)