小程序获取用户的openid,得到为null!我的解决办法

小程序获取用户的openid,得到为null!我的解决办法,第1张

我遇到的情况是:{ errMsg: "cloudcallFunction:ok", result: null }

方法一:先检查是否在开发前安装好nodsjs和npm;

在cmd输入:

node -v

npm -v

可以看到安装好的对应版本;

函数中使用 wx-server-sdk 需在对应云函数目录下安装 wx-server-sdk 依赖,可通过:

npm install --save wx-server-sdk@latest安装;

最后会提示:+wx-server-sdk@版本号。

成功安装依赖后,相应的云函数文件夹将生成一个package-lockjson文件。

再次上传并部署云函数:所有文件。

方法二:

在云端和本地上都要删除函数,再重新创建和上传,也许问题就会解决了!

方法三:

在云端上删除已经部署过的login函数:再次上传的时候可能会出现:

"Code": "ResourceNotFoundFunction", "Message": "未找到函数版本,请创建后再

然后此时在云端上新建函数,如下图:

再次上传并部署云函数,此时提醒函数已存在,不能重复上传,此时编译一下。

发现原本获取openid值为null的,现在能够成功获取到了用户的openid。

1 获取openid

11 获取code

首先我们要调用接口来获取登录凭证,也就是code,从而获取用户们登录的状态信息,其中有一个唯一标示,就是openid,还有我们登录要用到的钥匙(session_key)。用户的基本数据我们都要用到钥匙来获取数据。

wxlogin({

//获取code

success: function(res) {

code = rescode //返回code

}

})

12 获取openid

拿到上一步获取的code,结合小程序 appid 和 secret 请求接口apiweixinqqcom/sns/jscode2sessionappid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code 换取openid,与 openid 一同被返回的,还包括 session_key,其中 session_key 是对用户数据进行加密签名的密钥。为了自身应用安全,session_key 不应该在网络上传输。

wxrequest({

url: 'apiweixinqqcom/sns/jscode2sessionappid=APPID&secret=SECRET&js_code='+ code +'&grant_type=authorization_code',

data: {},

header: {

'content-type': 'application/json'

},

success: function(res) {

openid = resdataopenid //返回openid

}

})

2 获取用户信息

21 在appjs中创建该全局方法

//appjs

getUserInfo:function(cb){

var that = this

if(thisglobalDatapersonInfo){

typeof cb == "function" && cb(thisglobalDatapersonInfo)

}else{

//调用登录接口

wxlogin({

success: function () {

wxgetUserInfo({

success: function (res) {

thatglobalDatapersonInfo = resuserInfo

typeof cb == "function" && cb(thatglobalDatapersonInfo)

}

})

}

})

}

}

22 实例化全局方法获取用户信息

var that = this;

//调用应用实例的方法获取全局数据

appgetUserInfo(function (personInfo) {

//更新数据

thatsetData({

personInfo: personInfo

})

})

后端后idea。

微信小程序通过wxloginAPI进行登录获取code。由于AppID和AppSecret不能泄露给用户,根据code获取openid需要在服务端完成,所以需要将code发送给服务端,服务端通过code和appid、APPSecret获取到openid和SessionKey。

服务端需要返回自定义登录态给前端,不能返回SessionKey,前端保存自定义登录态,获取用户信息时携带自定义登录态给后端。

以上就是关于小程序获取用户的openid,得到为null!我的解决办法全部的内容,包括:小程序获取用户的openid,得到为null!我的解决办法、微信小程序如何开发,怎么获取openID和用户信息、微信小程序后端用hubild还是idea等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9299040.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存