在这个场景下需要登录态吗?没太弄懂登录态的意义
发布于 6 年前 作者 qiang78 4180 次浏览 来自 问答

现在想做的一个功能是用户在“我的”界面中查看到自己的历史发布,现在已经可以通过下面的代码在后台获取到用户的openid,而且在用户发布时就后台把物品信息和用户的openid一并写到数据库。当用户点击按钮时,服务器获取到用户的openid后即可筛选出商品列表然后传到前台显示。这个过程是否需要用到session_id以及3rd_session呢?

onLoad: function () {
    var that = this;
    // 查看是否授权
    wx.getSetting({
      success: function (res) {
        if (res.authSetting['scope.userInfo']) {
          wx.getUserInfo({
            success: function (res) {
              // console.log(res)
              // 用户已经授权过,不需要显示授权页面,所以不需要改变 isHide 的值
              // 根据自己的需求有其他操作再补充
              // 我这里实现的是在用户授权成功后,调用微信的 wx.login 接口,从而获取code
              wx.login({
                success: res => {
                  // 获取到用户的 code 之后:res.code
                  console.log("用户的code:" + res.code);
                  // 可以传给后台,再经过解析获取用户的 openid
                  // 或者可以直接使用微信的提供的接口直接获取 openid ,方法如下:
                  wx.request({
                    // 自行补上自己的 APPID 和 SECRET
                    url: 'http://192.168.0.102/wechattest/test.php?api_num=3&code=' + res.code,
                    success: res => {
                        // 获取到用户的 openid
                        console.log("用户的openid:" + res.data);
                    }
                  });
                }
              });
            }
          });
        } else {
          // 用户没有授权
          // 改变 isHide 的值,显示授权页面
          that.setData({
            isHide: true
          });
        }
      }
    });
  },

登录的方式就是在“我的”界面中点击授权按钮,弹出提示框后再次点击允许。使用了微信自带的wx.login接口和getuserinfo接口。上面代码这种方式能用吗?

2 回复

静默授权是要拿session_key的,如果不存头像跟昵称的,在展示昵称跟头像的地方可以用官方的open-data来展示

如果你不需要获取用户昵称和头像可以不用授权啊,单纯的openId是能满足识别用户的需求,当然如果要有其它安全考虑的话就需要更严格的校验了。

回到顶部