4***@qq.com
4***@qq.com
  • 发布:2024-04-23 23:04
  • 更新:2024-04-24 09:54
  • 阅读:141

【报Bug】官网文档上写的获取open-id的方法实际使用会提示权限校验未通过

分类:uniCloud

产品分类: uniCloud/App

示例代码:

const uid = 'xx'
const appId = '__UNI_xxx'
const wxPlatform = 'mp' // mp:小程序,h5:公众号,web:web页面,app:App微信登录

const db = uniCloud.database()
const getUserRes = await db.collection('uni-id-users').doc(uid).get()

const userRecord = getUserRes.data[0]
if(!userRecord) {
throw new Error('未匹配到此用户')
}
const wxOpenid = userRecord.wxopenid || {}
const openid = wxOpenid[wxPlatform + '
' + appId] || wxOpenid[wxPlatform]

操作步骤:

首先使用官网的方法尝试报错,password没有权限,然后就想着不查password,下述语句又报权限校验未通过
db.collection("uni-id-users").doc('$cloudEnv_uid').field('wx_openid').get().then((res) => {
// res 为数据库查询结果
console.log(res)
}).catch((e) => {
console.log(e)
});

预期结果:

按道理应该获取到数据

实际结果:

Error: 权限校验未通过,请参考文档:https://uniapp.dcloud.net.cn/uniCloud/schema.html#handler-permission-error

bug描述:

通过官网示例通过id获取微信小程序open_id代码报错

2024-04-23 23:04 负责人:无 分享
已邀请:
造件师

造件师 - 全栈开发在线接单:https://ask.dcloud.net.cn/article/41056

放在云函数里面不是很简单吗?

const db = uniCloud.database();  
const uniID = require('uni-id-common')  
const uniIDIns = uniID.createInstance({ // 创建uni-id实例  
    context: ctx  
})  
const auth = await uniIDIns.checkToken(ctx.data);  
const user = await db.collection('uni-id-users').doc(auth.uid).get();  
const wx_openid = user.data.wx_openid

要回复问题请先登录注册