从零开始做微信小程序后端---学习日记

wx.login(OBJECT)

调用接口获取登录凭证(code)进而换取用户登录态信息,包括用户的唯一标识(openid) 及本次登录的 会话密钥(session_key)等。用户数据的加解密通讯需要依赖会话密钥完成。

  获取到初步的目标,最基本应该实现的操作,可以接收到用户的登录信息并且把其中的一些数据存储到数据库中,并将这些信息传给前端,发送request的操作在微信小程序自带的API里有,叫做wx.login,用户获取登录时,前端使用 wx.login来获得跟服务器的连接,用用户登录凭证(code)来获取用户在这个应用里的唯一标识,以及本次登录的会话密钥(微信服务器对用户数据加密签名的密钥),此时分两种情况: 第一种是用户第一次登录,生成用户的唯一标识sessionid(加密并且让其难失效)存储进数据库中并标明其openid将它们以键值对存储,其中sessionid为key,openid和会话密钥session_key为value,发出一个response,数据为本次的 会话密钥和用户的 唯一标识(openid),会话密钥不应该在网络上传输, 第二种情况是用户之前登陆过,接收前端发送来的数据以后,使用code来提取原本存储在数据库中的用户openid与生成会话密钥;并且发送给前端此用户的sessionid。在用户登录过小程序之后,前端可以使 wx.checkSession接口来 检测当前用户登录态是否有效,此时如果失效则进行上述的第二种情况,发送给后端一个request,参数包含sessionid,用这个sessionid来在数据库里寻找其value(session_key和openid)。
注意:  返回的数据格式用 json格式储存。
           session_key在微信服务器的保存时间为30天。

  自己的理解说完了,这里加一张官方认为应该做到的登录时序图,这几天的开发会按这个来进行。
 

猜你喜欢

转载自blog.csdn.net/qq_14810357/article/details/79427697