收藏
回答

在这个场景下需要登录态吗?没太弄懂登录态的意义

问题模块 框架类型 问题类型 终端类型 微信版本 基础库版本
框架 小程序 需求 客户端 6.5.3 2.0.0

现在想做的一个功能是用户在“我的”界面中查看到自己的历史发布,现在已经可以通过下面的代码在后台获取到用户的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接口。上面代码这种方式能用吗?

最后一次编辑于  02-13
回答关注问题邀请回答
收藏

2 个回答

  • 吴奕群
    吴奕群
    02-13

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

    02-13
    赞同 1
    回复 2
    • 累了
      累了
      02-13

      但是拿到session_key之后一定要进行下面的流程,最后回给前台一个登录态吗?之后用户在请求后台服务的时候能通过openid来请求吗,不是用session_key请求?

      02-13
      回复
    • 吴奕群
      吴奕群
      02-13回复累了

      登录成功之后,服务端返回一个token给小程序端,然后小程序请求的时候带上这个token就可以了

      02-13
      回复
  • 拾忆
    拾忆
    02-13

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

    02-13
    赞同
    回复