首先,调用接口获取登录凭证(code)进而换取用户登录态信息,包括用户的唯一标识(openid) 及本次登录的会话密钥(session_key)。用户数据的加解密通讯需要依赖会话密钥完成。
获取openid,拿到上一步获取的code,结合小程序 appid 和 secret 请求接口一同被返回的,还包括 session_key,其中 session_key 是对用户数据进行加密签名蠢谨宽的密钥。为了自身应用安全,session_key 不应该在网络上传输。
直接使用wx.getUserInfo是不能获取更多的信息的,如微信用户的openid。
需要发送获取到的code进行请求到微信的后端API,进行用户解密之类的 *** 作才可以获取,根据文档,只需要进行一个get请求到如下地址。
需要发送获取到的code进行请求到微信的后端API,才能正确获取更多信息,这也许是为了安全起见。
最后,都要求判断登录的用户是不是唯一的,这也就需要使用微信账号唯一的带亮openid来验证晌磨了。
做小程序授权登蠢罩录获取openid时遇到以下错误:
{"errcode":40029,"errmsg":"invalid code, hints: [ req_id: m3yw8a0472th20 ]"}
在网上搜了下,有两种说法:1、code被使用了两次;2、appid与secret不一致
看了一下自己的项目,这两个错误都不是,后来在另一篇博文里看到只需要重新创建项目就可以了,试了一下,还真是。
仔细想了一下原因樱碰,当一开始创建项目的时候使用的是之前的appid,后来自己又在app.js里设置appid,但是这里设置没起作用,所有会报这脊档谈个错误。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)