微信小程序开发注意事项(二)微信授权
移动应用
小程序开发
浏览:665 次

1、 小程序用户唯一性
要通过微信开发工具创建新项目,默认的索引页面是获取微信授权信息。获得的微信用户信息如下:
用户信息.png
wxml语言
js语言
onLoad:函数(){
if(app.globalData.isBind){
//如果绑定,则直接返回上层
wx.navigateBack({
})
}
if(app.globalData.userInfo){
this.set数据({
用户信息:app.globalData.userInfo,
hasUserInfo:错误
})
}否则如果(this.data.canIUse){
//因为getUserInfo是一个网络请求,它可能只在onLoad之后出现在页面上
//所以在这里添加回调以防止这种情况
app。userInfoReadyCallback=res=>{
this.set数据({
用户信息:res.userInfo,
hasUserInfo:错误
})
}
}其他{
//打开类型=getUserInfo版本没有兼容的处理
wx.获取用户信息({

成功:res=>{
app全局数据。userInfo=资源用户信息
this.set数据({
用户信息:res.userInfo,
hasUserInfo:错误
})
}
})
}
},
getUserInfo:函数(e){
控制台.log(e)
如果(e.detail.errMsg==“getUserInfo:ok”){
app全局数据。userInfo=e.detail.userInfo
安慰日志('用户信息e>>>',e)
//=====1====这是绑定的用户界面=======================
让参数={
用户ID:app.globalData.userId,
wxname:e.detail.userInfo.nickName,
标题:e.detail.userInfo.avatarUrl
}
//绑定帐户
webRequest.postReq('/login/bindwx.do',参数,函数(res){
控制台.log(res)
如果(res.code==200){
app全局数据。isBind=真
wx.navigateBack({
})
//=====这是绑定的用户界面=============================

}其他{
//绑定失败,请重新绑定
app全局数据。isBind=假
}
})
}其他{
wx.showToast({
标题:'请授权',
icon:“无”
})
}
}
一般微信授权处理方法:在app中调用登录方法wx。js在登录()中获取代码并发送到服务器。服务器根据appid、secret和代码获取openid。每个用户的openid在小程序中都是唯一的。可以根据openid确定用户的唯一性
GET获取openid和session_Key(appid和secret可以在开发配置中找到。js_code是登录时获得的代码。Grant_type=authorization_code不需要设置)
图像.png
调用以获取临时登录凭据代码并将其返回给开发人员服务器。
调用该接口以交换用户的唯一ID OpenID和会话密钥session_key
之后,开发人员服务器可以根据用户ID生成用户定义的登录状态,当前端和后端在后续业务逻辑中交互时,该登录状态用于识别用户的身份
代码可以在没有微信授权的情况下获得,也就是说,您仍然可以确保用户的唯一性,而无需微信授权。如果需要微信头像和昵称,则必须经过用户授权才能获得。通常,将获得用户信息作为用户的基本信息。
2、 唯一小程序关联公众号
如果你的app不仅有一个小程序,还有一个公众号,如果你希望公众号和小程序都能唯一地识别用户,你就需要使用它。
官方描述:对于同一微信开放平台账号下的移动应用程序、网站app和公众账号(包括小程序),用户的UnionID是唯一的
UnionID必须通过微信认证,因此如果一个账户在多个微信平台(包括微信小程序和微信公众号)上使用,则必须使用UnionID以确保唯一性。必须注意的是,公众号和小程序的主体认证必须是同一主体。如果公众号和小程序的主体不是同一家公司,即使经过认证也无法获得UnionID
获取UnionID:
调用接口以从解密的数据中获取UnionID。请注意,此界面需要用户授权。用户拒绝授权后,开发商应妥善处理。
图像.png
这种方式是通过Wx GetUserInfo()要求服务器解密并获取相应的数据。这样做的好处是,你不需要关注公众号就可以获得它
如果开发者账号下有同一主题的公众号,且用户已关注该公众号。开发者可以通过+code2Session直接获取用户的UnionID,而无需用户重新授权。
如果开发者账号下有同一主题的官方账号或移动app,且用户已被授权登录该官方账号或手机app。开发者也可以通过+code2Session直接获取用户的UnionID,而无需用户重新授权。

这样的