收藏
回答

openid 和 session_key 是否可以传到客户端问题?

最近再做小程序电话号码授权登录问题,  网上看了很多案例, 大部分时将openid 和 session_key 流放到了客户端。

个人认为 openid有两层含义:  1>   此小程序唯一 标识, 整个过程中不会改变

                                                  2>  用户支付时,会用到openid  

                      session_key  :  是数据加密用的

 所以:个人认为 为了安全期间,不能将openid和session_key传输到客户端。


请求大神答疑? 是否可以?

以下为某博客代码:

getPhoneNumber: function (e) {//点击获取手机号码按钮

var that = this;

wx.checkSession({

success: function () {

var ency = e.detail.encryptedData;

            var iv = e.detail.iv;

            var sessionk = that.data.sessionKey;    此处获取sessionkey是否正确

if (e.detail.errMsg == 'getPhoneNumber:fail user deny') {


that.setData({


modalstatus: true


});


} else {//同意授权


wx.request({


method: "GET",


url: 'https://xxx/wx/deciphering.do',


data: {


encrypdata: ency,


ivdata: iv,


sessionkey: sessionk


},


header: {


'content-type': 'application/json' // 默认值


},


success: (res) => {


console.log("解密成功~~~~~~~将解密的号码保存到本地~~~~~~~~");


console.log(res);


var phone = res.data.phoneNumber;


console.log(phone);


            


}, fail: function (res) {


console.log("解密失败~~~~~~~~~~~~~");


console.log(res);


}


});


}


},


fail: function () {


console.log("session_key 已经失效,需要重新执行登录流程");


that.wxlogin(); //重新登录


}


});}


回答关注问题邀请回答
收藏

1 个回答

  • 思男
    思男
    2019-08-06

    openId是针对单个小程序的用户的唯一标识。

    支付等场景需要验签等操作,所以不存在安全性问题。

    大部分开发者选择直接用openId来作为用户的识别方式,是没有问题的。


    你上述代码中的session_key只是用来检测用户登录是否过期的。

    小程序本来就有这个API:wx.checkSession

    这个session_key并不能做一些其他的什么操作,也不存在安全性问题。


    参考文档:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.checkSession.html

    2019-08-06
    有用
    回复 3
    • 奋斗
      奋斗
      2019-08-06
      openid可以吗?
      2019-08-06
      回复
    • 思男
      思男
      2019-08-06回复奋斗
      只要你的接口里没有一些利用openId就可以单独操作的东西就是ok的,像支付一类的,都还需要另外验证签名,所以没什么问题,整体安全性还是看你代码,把问题都考虑到,解决,就可以了,openId你可以把它就当做用户id使用来区分用户就行了,像一些电商类小程序什么的一般都还会有自己的登录机制去换取token来保证更高的安全性。
      2019-08-06
      回复
    • 奋斗
      奋斗
      2019-08-06回复思男
      受益匪浅,非常感谢您
      2019-08-06
      回复
登录 后发表内容