get-realname-info.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. const { userCollection } = require('../../common/constants')
  2. const { ERROR } = require('../../common/error')
  3. const { decryptData } = require('../../common/sensitive-aes-cipher')
  4. const { dataDesensitization } = require('../../common/utils')
  5. /**
  6. * 获取实名信息
  7. * @tutorial https://uniapp.dcloud.net.cn/uniCloud/uni-id-pages.html#get-realname-info
  8. * @param {Object} params
  9. * @param {Boolean} params.decryptData 是否解密数据
  10. * @returns
  11. */
  12. module.exports = async function (params = {}) {
  13. const schema = {
  14. decryptData: {
  15. required: false,
  16. type: 'boolean'
  17. }
  18. }
  19. this.middleware.validate(params, schema)
  20. const { decryptData: isDecryptData = true } = params
  21. const {
  22. uid
  23. } = this.authInfo
  24. const getUserRes = await userCollection.doc(uid).get()
  25. const userRecord = getUserRes && getUserRes.data && getUserRes.data[0]
  26. if (!userRecord) {
  27. throw {
  28. errCode: ERROR.ACCOUNT_NOT_EXISTS
  29. }
  30. }
  31. const { realname_auth: realNameAuth = {} } = userRecord
  32. return {
  33. errCode: 0,
  34. type: realNameAuth.type,
  35. authStatus: realNameAuth.auth_status,
  36. realName: isDecryptData ? dataDesensitization(decryptData.call(this, realNameAuth.real_name), { onlyLast: true }) : realNameAuth.real_name,
  37. identity: isDecryptData ? dataDesensitization(decryptData.call(this, realNameAuth.identity)) : realNameAuth.identity
  38. }
  39. }