微信小程序> 小程序登录态

小程序登录态

浏览量:2851 时间: 来源:xuexixuexien

维持小程序的登陆态

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


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


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

小程序

第一步。需要先通过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来放在小程序上。

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎