学习微信小程序第一天

本来以为昨晚肝一晚上估计能搞定前后端传值的问题,但做着做着就发现不对劲了,前端是微信小程序,后端是WebStorm,数据是如何在这两个程序之间传递的呢
后面去搜了一下,需要API接口来进行数据的传递,又跑去看微信小程序的API接口调用,发现也是看的一头雾水,看的云里雾里的
微信开放API接口链接:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html
https://developers.weixin.qq.com/miniprogram/dev/api/wx.login.html
估计这两天的时间都要用在看这块上面了。本来以为这些内容可以一会儿就看完的,结果才深入了解了一点就发现这个程序下面还有很多的函数,接口之类的需要去了解,熟悉,掌握,特别是API接口这些,这些学不会怎么去进行数据的传输呀。。而且数据库还要想想怎么搭建基础表,想想头就大,要学的东西好多呀

今天看的代码段:

wx.login({
  success(res) {
    if (res.code) {
      // 发起网络请求
      wx.request({
        url: 'https://test.com/onLogin',
        data: {
          code: res.code
        }
      })
    } else {
      console.log('登录失败!' + res.errMsg)
    }
  }
})
属性	     类型	     说明	
code	string	    用户登录凭证(有效期五分钟)。开发者需要在开发者服务器后台调用
                     code2Session,使用 code 换取 openid 和 session_key 等信息	

在微信小程序中,wx.login是一个调用接口获取登录凭证(code)函数,通过该凭证来获取用户的登录态信息,主要内容有用的唯一标识(openid)和本次登录的会话秘钥(session_key),用户数据的加解密通讯需要依赖秘钥完成。
简单来说,如果没有会话秘钥,我们的信息可能在传递的过程中就被别人截获破解了,如果不加密那么我们的很多数据就会以明码的方式在网上进行传递,如果有人想要截取信息那么截取到的信息甚至不需要进行破解就可以得到真实信息,所以在微信的“小程序登录”界面最下方有两条注释:
1.会话秘钥session_key是堆用户数据进行加密签名的秘钥。为了应用自身的数据安全,开发者服务器不应该把会话秘钥下发到小程序,也不应该对外提供这个秘钥
2.临时登录凭证code只能使用一次

整个小程序登录的流程时序图如下:
在这里插入图片描述
逻辑顺序:
微信小程序调用wx.login()获取code(临时登录凭证)→并返回至小程序端→小程序调用wx.request()发送code至开发者服务器(即我们口中的后台)→开发者服务器接收code后进行登录凭证校验,与微信接口服务进行数据传输互动→发送appide+appsecret+code至微信接口服务(微信API)进行校验→校验成功后API接口返回session_key及openid到开发者服务器
说实话这步我并不是很了解:自定义登录态:与openid,session_key关联,是否意味着校验成功后后台接收值完毕后,可以将数据进行绑定,我不确定,这里存疑
开发者服务器将自定义登录态返回至微信小程序→小程序将接收到的自定义登录态存入storage中
微信小程序通过wx.request()向开发者服务器发起业务请求,并且携带自定义登录状态→开发者服务器通过自定义登录态查询openid和session_key来进行数据的查找→查找完毕后将前端微信小程序需要的数据进行返回(返回业务数据),整个登录过程结束

重新梳理了一遍思路后,自定义登录态与openid,session_key应该是与后台相连的数据库进行数据的挂钩,可能用户在该微信小程序已经注册过填写过相应信息,比如登录名,密码,姓名,手机号等,不可能每次登录都需要用户重新填写一遍信息,如果是这样的话可能就没有用户了,所以这里应该是使用上述两个值来进行数据库的查找,找到对应的数据,并一起打包,发送给前端的微信小程序,根据自家的前端小程序所需要显示的数据不同来绑定相应的数据,这应该就是“自定义登陆态”了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值