add api to query twitter and discord divided
This commit is contained in:
parent
ee66727523
commit
3465a63d06
@ -2,10 +2,20 @@ import BaseController, { ROLE_ANON } from 'common/base.controller'
|
|||||||
import { ZError } from 'common/ZError'
|
import { ZError } from 'common/ZError'
|
||||||
import { role, router } from 'decorators/router'
|
import { role, router } from 'decorators/router'
|
||||||
import logger from 'logger/logger'
|
import logger from 'logger/logger'
|
||||||
import { AuthRecord } from 'modules/AuthRecord'
|
import { AuthRecord, PlatEnum } from 'modules/AuthRecord'
|
||||||
import { DiscordSvr } from 'services/discord.svr'
|
import { DiscordSvr } from 'services/discord.svr'
|
||||||
import { hmacsha256 } from 'utils/security.util'
|
import { hmacsha256 } from 'utils/security.util'
|
||||||
|
|
||||||
|
const checkSign = (params: {address?: string, sign?: string}) => {
|
||||||
|
const {address, sign} = params;
|
||||||
|
if (!address || !sign) {
|
||||||
|
throw new ZError(10, 'invalid params')
|
||||||
|
}
|
||||||
|
let signCheck = hmacsha256(`address=${address}`, process.env.HASH_SALT)
|
||||||
|
if (sign !== signCheck) {
|
||||||
|
throw new ZError(11, 'invalid sign')
|
||||||
|
}
|
||||||
|
}
|
||||||
class MainController extends BaseController {
|
class MainController extends BaseController {
|
||||||
/**
|
/**
|
||||||
* Refresh token
|
* Refresh token
|
||||||
@ -74,4 +84,37 @@ class MainController extends BaseController {
|
|||||||
let verified = await new DiscordSvr().checkUserRole(id)
|
let verified = await new DiscordSvr().checkUserRole(id)
|
||||||
return { verified }
|
return { verified }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@role(ROLE_ANON)
|
||||||
|
@router('get /activity/twitter/:address')
|
||||||
|
async checkTwitterFollow(req) {
|
||||||
|
let { address } = req.params
|
||||||
|
checkSign(req.params);
|
||||||
|
address = address.toLowerCase()
|
||||||
|
let record = await AuthRecord.findOne({ address, platform: PlatEnum.TWITTER })
|
||||||
|
let result: any = { }
|
||||||
|
if (!!record) {
|
||||||
|
result.username = record.username
|
||||||
|
result.userid = record.openId
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
@role(ROLE_ANON)
|
||||||
|
@router('get /activity/discord/:address')
|
||||||
|
async checkDiscord(req) {
|
||||||
|
let { address } = req.params
|
||||||
|
checkSign(req.params);
|
||||||
|
address = address.toLowerCase()
|
||||||
|
let record = await AuthRecord.findOne({ address, platform: PlatEnum.DISCORD })
|
||||||
|
let result: any = { }
|
||||||
|
if (!!record) {
|
||||||
|
result.verified = record.condition
|
||||||
|
result.username = record.username
|
||||||
|
result.userid = record.openId
|
||||||
|
result.discriminator = record.discriminator
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user