本文编辑: 大妖怪浏览 10279 版权所有,严禁转载
接口 | 说明 |
---|---|
wx.login | 调用接口获取登录凭证(code)进而换取用户登录态信息,包括用户的唯一标识(openid) 及本次登录的 会话密钥(session_key)。用户数据的加解密通讯需要依赖会话密钥完成 |
wx.checkSession | 检查登录态是否过期 |
wxml
<view>
<button bindtap="login">登录</button>
</view>
js
var app = getApp()
Page({
data: {
},
onLoad: function () {
},
login:function(){
wx.login({
success: function(res) {
if (res.code) {
console.log(res.code);
wx.request({
url: 'https://api.weixin.qq.com/sns/jscode2session',
data: {
appid:'你的appid',
secret:'你的secret',
js_code:res.code,
grant_type:'authorization_code'
},
method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
header: {
'Content-Type': 'json'
},
success: function(res){
console.log("openid:"+res.openid);
console.log("session_key:"+res.session_key);
},
})
} else {
console.log('获取用户登录态失败!' + res.errMsg)
}
}
});
}
})
【wx.login】:【调用接口获取登录凭证(code)进而换取用户登录态信息,包括用户的唯一标识(openid) 及本次登录的 会话密钥(session_key)。用户数据的加解密通讯需要依赖会话密钥完成】
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
success | Function | 否 | 接口调用成功的回调函数 |
fail | Function | 否 | 接口调用失败的回调函数 |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
success返回参数说明:
参数名 | 类型 | 说明 |
---|---|---|
errMsg | String | 结果 |
code | String | 用户允许登录后,回调内容会带上 code(有效期五分钟),开发者需要将 code 发送到开发者服务器后台,使用code 换取 session_key api,将 code 换成 openid 和 session_key |
//app.js
App({
onLaunch: function() {
wx.login({
success: function(res) {
if (res.code) {
//发起网络请求
wx.request({
url: 'https://test.com/onLogin',
data: {
code: res.code
}
})
} else {
console.log('获取用户登录态失败!' + res.errMsg)
}
}
});
}
})
【wx.checkSession】:【检查登录态是否过期】
参数 | 类型 | 必填 | 描述 |
---|---|---|---|
success | Function | 否 | 接口调用成功的回调函数,登录态未过期 |
fail | Function | 否 | 接口调用失败的回调函数,登录态已过期 |
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
wx.checkSession({
success: function(){
//登录态未过期
},
fail: function(){
//登录态过期
wx.login()
}
})
bug&tip:
1.bug: iOS/Android 6.3.30,在 App.onLaunch 调用 wx.login 会出现异常;
2.tip:’https://api.weixin.qq.com‘ 请求应吧code传到开发者服务器后端,在后端完成请求,示例不方便因此放到了前端仅做示例;