12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- const {
- getPhoneNumber
- } = require('../../lib/utils/univerify')
- const {
- LOG_TYPE
- } = require('../../common/constants')
- const {
- preBind,
- postBind
- } = require('../../lib/utils/relate')
- /**
- * 通过一键登录绑定手机号
- * @tutorial https://uniapp.dcloud.net.cn/uniCloud/uni-id-pages.html#bind-mobile-by-univerify
- * @param {Object} params
- * @param {String} params.openid APP端一键登录返回的openid
- * @param {String} params.access_token APP端一键登录返回的access_token
- * @returns
- */
- module.exports = async function (params = {}) {
- const schema = {
- openid: 'string',
- access_token: 'string'
- }
- const {
- openid,
- // eslint-disable-next-line camelcase
- access_token
- } = params
- this.middleware.validate(params, schema)
- const uid = this.authInfo.uid
- let mobile
- try {
- const phoneInfo = await getPhoneNumber.call(this, {
- // eslint-disable-next-line camelcase
- access_token,
- openid
- })
- mobile = phoneInfo.phoneNumber
- } catch (error) {
- await this.middleware.uniIdLog({
- success: false,
- data: {
- user_id: uid
- },
- type: LOG_TYPE.BIND_MOBILE
- })
- throw error
- }
- const bindAccount = {
- mobile
- }
- await preBind.call(this, {
- uid,
- bindAccount,
- logType: LOG_TYPE.BIND_MOBILE
- })
- await postBind.call(this, {
- uid,
- bindAccount,
- extraData: {
- mobile_confirmed: 1
- },
- logType: LOG_TYPE.BIND_MOBILE
- })
- return {
- errCode: 0
- }
- }
|