You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.3 KiB
46 lines
1.3 KiB
1 year ago
|
const { userCollection } = require('../../common/constants')
|
||
|
const { ERROR } = require('../../common/error')
|
||
|
const { decryptData } = require('../../common/sensitive-aes-cipher')
|
||
|
const { dataDesensitization } = require('../../common/utils')
|
||
|
|
||
|
/**
|
||
|
* 获取实名信息
|
||
|
* @tutorial https://uniapp.dcloud.net.cn/uniCloud/uni-id-pages.html#get-realname-info
|
||
|
* @param {Object} params
|
||
|
* @param {Boolean} params.decryptData 是否解密数据
|
||
|
* @returns
|
||
|
*/
|
||
|
module.exports = async function (params = {}) {
|
||
|
const schema = {
|
||
|
decryptData: {
|
||
|
required: false,
|
||
|
type: 'boolean'
|
||
|
}
|
||
|
}
|
||
|
|
||
|
this.middleware.validate(params, schema)
|
||
|
|
||
|
const { decryptData: isDecryptData = true } = params
|
||
|
|
||
|
const {
|
||
|
uid
|
||
|
} = this.authInfo
|
||
|
const getUserRes = await userCollection.doc(uid).get()
|
||
|
const userRecord = getUserRes && getUserRes.data && getUserRes.data[0]
|
||
|
if (!userRecord) {
|
||
|
throw {
|
||
|
errCode: ERROR.ACCOUNT_NOT_EXISTS
|
||
|
}
|
||
|
}
|
||
|
|
||
|
const { realname_auth: realNameAuth = {} } = userRecord
|
||
|
|
||
|
return {
|
||
|
errCode: 0,
|
||
|
type: realNameAuth.type,
|
||
|
authStatus: realNameAuth.auth_status,
|
||
|
realName: isDecryptData ? dataDesensitization(decryptData.call(this, realNameAuth.real_name), { onlyLast: true }) : realNameAuth.real_name,
|
||
|
identity: isDecryptData ? dataDesensitization(decryptData.call(this, realNameAuth.identity)) : realNameAuth.identity
|
||
|
}
|
||
|
}
|