首次完整推送,

V:1.20240808.006
This commit is contained in:
fm453
2024-08-13 18:32:37 +08:00
parent 15be3e9373
commit c62d15b288
939 changed files with 111777 additions and 0 deletions

View File

@ -0,0 +1,37 @@
const {
isAuthorizeApproved
} = require('./utils')
const {
dbCmd,
userCollection
} = require('../../common/constants')
/**
* 授权用户登录应用
* @tutorial https://uniapp.dcloud.net.cn/uniCloud/uni-id-pages.html#authorize-app-login
* @param {Object} params
* @param {String} params.uid 用户id
* @param {String} params.appId 授权的应用的AppId
* @returns
*/
module.exports = async function (params = {}) {
const schema = {
uid: 'string',
appId: 'string'
}
this.middleware.validate(params, schema)
const {
uid,
appId
} = params
await isAuthorizeApproved({
uid,
appIdList: [appId]
})
await userCollection.doc(uid).update({
dcloud_appid: dbCmd.push(appId)
})
return {
errCode: 0
}
}

View File

@ -0,0 +1,5 @@
module.exports = {
authorizeAppLogin: require('./authorize-app-login'),
removeAuthorizedApp: require('./remove-authorized-app'),
setAuthorizedApp: require('./set-authorized-app')
}

View File

@ -0,0 +1,30 @@
const {
dbCmd,
userCollection
} = require('../../common/constants')
/**
* 移除用户登录授权
* @tutorial https://uniapp.dcloud.net.cn/uniCloud/uni-id-pages.html#remove-authorized-app
* @param {Object} params
* @param {String} params.uid 用户id
* @param {String} params.appId 取消授权的应用的AppId
* @returns
*/
module.exports = async function (params = {}) {
const schema = {
uid: 'string',
appId: 'string'
}
this.middleware.validate(params, schema)
const {
uid,
appId
} = params
await userCollection.doc(uid).update({
dcloud_appid: dbCmd.pull(appId)
})
return {
errCode: 0
}
}

View File

@ -0,0 +1,36 @@
const {
isAuthorizeApproved
} = require('./utils')
const {
userCollection
} = require('../../common/constants')
/**
* 设置用户允许登录的应用列表
* @tutorial https://uniapp.dcloud.net.cn/uniCloud/uni-id-pages.html#set-authorized-app
* @param {Object} params
* @param {String} params.uid 用户id
* @param {Array} params.appIdList 允许登录的应用AppId列表
* @returns
*/
module.exports = async function (params = {}) {
const schema = {
uid: 'string',
appIdList: 'array<string>'
}
this.middleware.validate(params, schema)
const {
uid,
appIdList
} = params
await isAuthorizeApproved({
uid,
appIdList
})
await userCollection.doc(uid).update({
dcloud_appid: appIdList
})
return {
errCode: 0
}
}

View File

@ -0,0 +1,38 @@
const {
userCollection
} = require('../../common/constants')
const {
ERROR
} = require('../../common/error')
const {
findUser
} = require('../../lib/utils/account')
async function isAuthorizeApproved ({
uid,
appIdList
} = {}) {
const getUserRes = await userCollection.doc(uid).get()
const userRecord = getUserRes.data[0]
if (!userRecord) {
throw {
errCode: ERROR.ACCOUNT_NOT_EXISTS
}
}
const {
userMatched
} = await findUser({
userQuery: userRecord,
authorizedApp: appIdList
})
if (userMatched.some(item => item._id !== uid)) {
throw {
errCode: ERROR.ACCOUNT_CONFLICT
}
}
}
module.exports = {
isAuthorizeApproved
}