获取用户信息

在小程序新的文档中定义了,如果想要获取用户信息那么需要与open-type一起使用,否则是无法获取用户信息的。

<button open-type="getUserInfo"bindgetuserinfo="bindGetUserInfo"> 
获取用户信息</button>
//open-type 开放能力,这里我们开放的市用户userInfo
//bindgetuserinfo  点击获取用户信息,与wx.getUserInfo返回结果一致,(open-type=getUserInfo有效)
​
//页面加载时获取用户信息
onLoad:function(){
    //getSetting获取用户的当前设置。返回值中只会出现小程序已经向用户请求过的权限
    wx.getSetting({
      success (res){
          //res返回用户是否授权
       if (res.authSetting['scope.userInfo']) {
          wx.getUserInfo({
          success: function(res){
            console.log(res)
          }
        })
       }
      }
    })
  },
  //点击时获取用户信息
  bindGetUserInfo (e) {
    console.log(e.detail.userInfo)
  }

如果你需要一些用户微信信息,但是不需要使用到button组件,那么你可以使用open-data组件。open-data

他可以帮直接使用你需要的用户微信信息。

获取用户openid

方法一(建议使用)

使用云函数,使用云函数的时候,项目默认会为你创建一个login云函数

wx.cloud.callFunction({
      name: 'login',
      success: (res) => {
        let openid = res.result.openid
        wx.setStorageSync('openid', openid)
      }
    })

方法二

wx.login({
            success: function (res) {
              console.log(res)
              wx.request({
                url: '后台通过获取前端传的code返回openid的接口地址',
                data: { code: code },
                header: { 'content-type': 'application/json'},
                success: function (res) {
                 if (res.statusCode == 200) {
                   console.log(res.data.result.openid);
//                   console.log(res.data.result.unionid); unionid企业版微信才能获得,个人版无法获得
                 } else {
                   console.log(res.errMsg)
                 }
              },
            })
          }
       })  

后台中



文档

let express = require('express')
let request = require('request')
let app = express()
const appid = ''
const appsercet = ''
app.use("/login",(req,res) => {
    const data = req.query.code
    const url = `https://api.weixin.qq.com/sns/jscode2session?appid=${appid}&`
    request(url,(err,res,body) => {
        //建议把session_key隐藏起来
        res.send(body.openid)
    })
​
})
app.listen(3000)