最近在写小程序的云开发,发现如果不要用户授权获取用户信息(可以用open-data组件),设计用户表只保存openid好像有点单一了。只调用云函数和使用本地存储来获取openid来维护这种方式可行吗?
//app.js
App({
onLaunch: function() {
if (!wx.cloud) {
console.error('请使用 2.2.3 或以上的基础库以使用云能力')
} else {
wx.cloud.init({
// env 参数说明:
// env 参数决定接下来小程序发起的云开发调用(wx.cloud.xxx)会默认请求到哪个云环境的资源
// 此处请填入环境 ID, 环境 ID 可打开云控制台查看
// 如不填则使用默认环境(第一个创建的环境)
env: 'test-env',
traceUser: true,
})
this.initUser()
}
},
async initUser(){
const openId = wx.getStorageSync('openId')
const isLogin = wx.getStorageSync('isLogin')
if (isLogin) {
this.globalData = {
isLogin,
openId
}
} else {
const res = await wx.cloud.callFunction({
name: 'login'
})
wx.setStorageSync('openId', res.result.openId)
wx.setStorageSync('isLogin', true)
this.globalData = {
isLogin:true,
openId:res.result.openId
}
}
},
globalData: {
isLogin: false,
openId: ''
}
})
可行,但是功能扩张性不强。比如:修改用户头像和昵称功能,显示用户列表功能,这些功能都无法实现。当然如果你不用这些功能,那是没有问题的。