小程序登录态

维持小程序的登陆态

   第一确认自己是不是使用自有帐号注册,比如说让用户输入手机号注册或登录。如果是的话,就是用自己的机制,比如可以用手机号来唯一标识每一个用户。


如果不是的话,就请参考一下的官方提供的机制。


一,官方提供的登陆态时序图。


第一步。需要先通过wx.login获取code,code是登录凭证。wx.login介绍

利用wx.login就可以返回code。

 
 
wx.login({ success: function(res) { var code = res.code; if (code) { console.log( '获取用户登录凭证:' + code); } else { console.log( '获取用户登录态失败:' + res.errMsg); } } });
第二步。将获取的code发送到自己的后台服务器。  调用wx.request方法。

  wx.request({
      url:'--------填写自己的服务器地址',
      data: {
        code:code-----右边的code是你用wx.login获取的code,左边的code是参数,传到后台服务器
      },
      method:"GET",
       header:{
        "content-type":"application/json"
},
      success: function(result) {
        console.log('request success', result)
      }
    })
这儿有几个需要注意的地方,

①method有两种,get和post,它们对应的header中填写的东西也不一样,

如果是post,则改成

header:{content-type": "application/x-www-form-urlencoded"},

②content-type是大写还是小写,好像也有点不同的地方。

三。后台服务器接收到code之后,就通过code和自己开发者后台获取到的appid和appsecret来通过http请求向微信服务器请求获取openid(用户的唯一标识)和session_key(会话密钥)。方法可以参照  


四,生成第三方缓存3rd_session,然后之后将这个返回给小程序。

 五小程序接受之后就将获得的3rd_session存到本地缓存中

  这个可以在上边第二步的success(res)返回的数据中接收,

然后利用wx.setstorage方法存放到缓存中(这儿有几种不同的方式),一般用同步的,通过它的success()的方法还可以确认操作结果。

六,之后用户进入小程序的时候带上3rd_session发送到后台服务器,看是不是合法的。


谈一下我自己的理解

 ①我认为不管哪种方式都是为了让后台可以辨识用户。登录态就是唯一确认某个用户。

 微信官方提供的这种使用微信帐号进行标识,因为它之后通过后台服务器获取的openid就可以对每个用户进行唯一标识。对于小程序来说,不同的用户的openid是不一样           的。(还有一个叫unionid,这个是如果小程序绑定了公众号,那么这个unionid对于整个公众号和小程序来说都是唯一的。)

②3rd_session就相当于是一个登录凭证,证明这个用户曾经登陆过

③微信还提供了一个wx.checksession({})的api,介绍,它对于开发者来说是透明的,

④后台服务器生成的3rd_session和微信服务器返回的session都是有过期时间的。这个要注意。

⑤其实微信的方式也是使用openid来唯一标识每个用户,只不过openid比较重要,所以不能放在小程序上,所以就得引入一个新的量,就是3rd_session来放在小程序上。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值