微信小程序 获取用户信息
1.獲取用戶的基本信息
wx.getUserInfo(OBJECT)獲取用戶信息
wx.getUserInfo(OBJECT)獲取用戶信息
wx.getUserInfo({
success: function(res) {
var userInfo = res.userInfo //用戶基本信息
var nickName = userInfo.nickName //用戶名
var avatarUrl = userInfo.avatarUrl //頭像鏈接
var gender = userInfo.gender //性別 0:未知、1:男、2:女
var province = userInfo.province //所在省
var city = userInfo.city //所在市
var country = userInfo.country //所在國家 }
})
2.獲取系統信息
wx.getSystemInfo(OBJECT)獲取系統信息
wx.getSystemInfo({
success: function(res) {
console.log(res.model) // 手機型號
console.log(res.pixelRatio)
console.log(res.windowWidth)
console.log(res.windowHeight)
console.log(res.language)
console.log(res.version)
console.log(res.platform)
console.log(res.system) // 操作系統版本
}
})
3.獲取openId (用戶唯一標識)和session_key
wx.login(OBJECT) 調用接口獲取登錄憑證(code)進而換取用戶登錄態信息,包括用戶的唯一標識(openid) 及本次登錄的 會話密鑰(session_key)。
獲取到code之后請求https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code接口
wx.login({ //獲取code success: function (res) { var code = res.code; //返回code console.log(code); var appId = '...'; var secret = '...';
wx.request({
url: 'https://api.weixin.qq.com/sns/jscode2session?appid=' + appId + '&secret=' + secret + '&js_code=' + code + '&grant_type=authorization_code',
data: {},
header: { 'content-type': 'json' },
success: function (res) { var openid = res.data.openid //返回openid console.log('openid為' + openid);
}
})
}
})
小程序的開發者密碼(AppSecret)是一個非常重要的字段,使用該密碼可以調用小程序的所有后臺接口。請不要將該字段放置在微信小程序的前端代碼中,因為微信手機客戶端容易被反編譯并輕松獲得Appsecret,造成重大的安全威脅。開發者應將Appsecret保存到后臺服務器中,通過服務器使用Appsecert獲取Accesstoken。微信公眾平臺小程序后臺的服務器地址設置也將禁止將“api.weixin.qq.com”域名的配置,所有對于“api.weixin.qq.com”域名下的接口請求請全部通過后臺服務器發起,請勿直接通過小程序的前端代碼發起。
所以解決辦法就是把code傳給后臺,讓后臺去請求微信的官方接口獲得openId和session-key。
其實微信小程序官方的登錄時序圖也是這樣畫的
將code傳至后臺服務器,讓服務器去訪問微信服務器得到openId和session_key。