1.如何换取openId?
很简单就是:
1)
使用wx.login来得到用户的code
2)
把code给post到后端,让后端去小程序服务器换取openId,后端就返回给我。
就这么简单。就是把code给post到后端就返回openId了
// 调用登录接口拿到用户的登录凭证(code)。
wx.login({
success: res => {
console.log('---app.js的wx.login res---', res);//用到的是res.code
//res.code比如"023zcdO92W5VPK0jvOO92dO1O92zcdOA",是用户登录凭证(有效期五分钟)。开发者需要在开发者服务器后台调用 code2Session,使用 code 换取 openid 和 session_key 等信息
// 发送 res.code 到后台换取 openId, sessionKey, unionId
that.getOpenId(res.code);//把凭证(code)发去后端,期望返回openId,并储存到了全局app.js.globalData.opencode。//可在其他地方通过getApp().globalData.opencode拿到
}
});
//获取openId
//发送code到后端服务器,如成功则返回自定义登录态,就包括openId
getOpenId: function (code) {
console.log('---app.js里开始拿用户code去后端换取openId---');
var that = this;
wx.request({
url: 'http://192.168.1.208:8102/clnj/' + 'customerApp/getOpenIdByCode.do',
data: { 'code': code },
method: 'POST',
header: that.globalData.header,
success: (res) => {
console.log('--app.js的getOpenId方法后端返回res--', res);
// console.log('--app.js的getOpenId方法获取openId的success回调res.data.openid--', res.data.data.openid);
// that.globalData.openId = res.data.data.openid;//可在其他地方通过getApp().globalData.opencode拿到
console.log('---看看that.globalData.openId是否有值---', that.globalData.openId);
},
fail: () => {
// fail
},
complete: () => {
// complete
}
})
}
2.如何注册?
1)
使用<button open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo">点击授权</button>来弹窗让用户授权。用户点确定就可以从事件对象里看到
//授权,用户授权“用户信息”功能,用户点击首页的授权按钮然后在弹窗里选择yes/no才触发。
bindGetUserInfo: function(e) {
console.log('----用户在授权选择里点击了yes/on!,e:----', e);
var _this = this;
console.log('--index/index.js的bindGetUserInfo获取用户信息--', e.detail.userInfo);
if (e.detail.userInfo) { //如果有这个值,说明用户点选yes了,授权设置里就有了“用户信息”的功能权限
//用户按了允许授权按钮
_this.setData({
shouquandisplay: "none"
})
wx.showTabBar({}) //显示导航栏
} else {
//用户按了拒绝按钮
wx.showModal({
title: '授权提醒',
content: '请在“点击授权”后点击“允许”以便继续进行使用',
showCancel: false,
confirmText: "好的",
success(res) {
if (res.confirm) {} else if (res.cancel) {}
}
})
}
},
先让用户授权“获取用户信息”功能,才能使用wx.getUserInfo。
2)
把用户openId给post到后盾,让后端检测用户是否注册了。注册了就没事。没有注册,就执行下面步骤的注册。
3)
使用wx.getUserInfo来得到用户的nickName,gender,avatarUrl, openId,
把这些post到后端,让后端给注册这个用户。
4)
返回数据,前端确认post成功就行,不用做什么其他处理。这就是为了让后端注册这个用户就行了。
原来注册对于前端是没有 什么用的,是对后端很有用
网友评论