获取用户信息
在小程序新的文档中定义了,如果想要获取用户信息那么需要与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)