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 { role, router } from 'decorators/router'
|
||||
import logger from 'logger/logger'
|
||||
import { AuthRecord } from 'modules/AuthRecord'
|
||||
import { AuthRecord, PlatEnum } from 'modules/AuthRecord'
|
||||
import { DiscordSvr } from 'services/discord.svr'
|
||||
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 {
|
||||
/**
|
||||
* Refresh token
|
||||
@ -74,4 +84,37 @@ class MainController extends BaseController {
|
||||
let verified = await new DiscordSvr().checkUserRole(id)
|
||||
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