首次完整推送,
V:1.20240808.006
This commit is contained in:
@ -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
|
||||
}
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
module.exports = {
|
||||
authorizeAppLogin: require('./authorize-app-login'),
|
||||
removeAuthorizedApp: require('./remove-authorized-app'),
|
||||
setAuthorizedApp: require('./set-authorized-app')
|
||||
}
|
@ -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
|
||||
}
|
||||
}
|
@ -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
|
||||
}
|
||||
}
|
@ -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
|
||||
}
|
Reference in New Issue
Block a user