diff --git a/src/controllers/discord.controller.ts b/src/controllers/discord.controller.ts index 88873c3..8d2fee7 100644 --- a/src/controllers/discord.controller.ts +++ b/src/controllers/discord.controller.ts @@ -12,7 +12,7 @@ class DiscordController extends BaseController { let { code, state } = req.params if (code && state) { const stateArr = state.split('|') - const address = stateArr[0] + const address = stateArr[0].toLowerCase() const record = await AuthRecord.insertOrUpdate( { address, platform: 7 }, { address, platform: 7, $inc: { version: 1 } }, diff --git a/src/controllers/main.controller.ts b/src/controllers/main.controller.ts index c29c75e..acaf7e0 100644 --- a/src/controllers/main.controller.ts +++ b/src/controllers/main.controller.ts @@ -21,6 +21,7 @@ class MainController extends BaseController { if (sign !== signCheck) { throw new ZError(11, 'invalid sign') } + address = address.toLowerCase() let records = await AuthRecord.find({ address }) let result: any = { discord: {}, @@ -47,11 +48,17 @@ class MainController extends BaseController { } } if (result.discord.id && !result.discord.verified) { - let verified = await new DiscordSvr().checkUserRole(result.discord.id) - if (verified) { - distcordRecord.condition = 1 - result.discord.verified = 1 - } + setImmediate(async () => { + try { + let verified = await new DiscordSvr().checkUserRole(result.discord.id) + if (verified) { + logger.info('check role with verified: ' + verified) + await AuthRecord.updateOne({ openId: result.discord.id, platform: 7 }, { $set: { condition: 1 } }) + } + } catch (err) { + logger.info('check role with err: ' + err.message || err) + } + }) } return result } diff --git a/src/controllers/twitter.controller.ts b/src/controllers/twitter.controller.ts index 084b179..0c1337f 100644 --- a/src/controllers/twitter.controller.ts +++ b/src/controllers/twitter.controller.ts @@ -13,7 +13,7 @@ class TwitterController extends BaseController { const { code, state } = req.params if (code && state) { const stateArr = state.split('|') - const address = stateArr[0] + const address = stateArr[0].toLowerCase() const record = await AuthRecord.insertOrUpdate( { address, platform: 4 }, { address, platform: 4, $inc: { version: 1 } }, diff --git a/src/modules/AuthRecord.ts b/src/modules/AuthRecord.ts index 9a2ec42..5c8d194 100644 --- a/src/modules/AuthRecord.ts +++ b/src/modules/AuthRecord.ts @@ -15,6 +15,7 @@ export enum PlatEnum { @dbconn() @index({ address: 1, platform: 1 }, { unique: true }) +@index({ address: 1 }, { unique: false }) @modelOptions({ schemaOptions: { collection: 'auth_record', timestamps: true }, options: { allowMixed: Severity.ALLOW }, diff --git a/templates/discord_redirect.ejs b/templates/discord_redirect.ejs index fdd9afc..ba0c631 100644 --- a/templates/discord_redirect.ejs +++ b/templates/discord_redirect.ejs @@ -15,6 +15,7 @@