小程序云开发在不需要用户授权的情况下是否可以不用维护user表?
发布于 6 年前 作者 dutao 7030 次浏览 来自 问答

最近在写小程序的云开发,发现如果不要用户授权获取用户信息(可以用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: ''
  }
})
2 回复

可行的,用户在小程序端往云存储和数据库里写和读取数据时都默认带了openid为当前用户的openid的条件,这就是云开发的免鉴权,相当于实现了用户的直接登录,只是没有用户的头像、昵称等信息而已。

可行,但是功能扩张性不强。比如:修改用户头像和昵称功能,显示用户列表功能,这些功能都无法实现。当然如果你不用这些功能,那是没有问题的。

回到顶部