小程序自动登录实现

微信小程序之登录

第一步:获取登录态code
微信登录部分,首先需要使用微信小程序的api—— wx.login(OBJECT)来获取登录态
这个登录态的作用是为了获取用户的openid(用户的唯一标识);

相关链接:https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-login.html#wxloginobject

官方示例
js部分:
//调用登录

wx.login({
   success: function(res) {
   console.log(res);
    if (res.code) {
      //发起网络请求
      //doSomething
    } else {
      console.log('获取用户登录态失败!' + res.errMsg)
    }
  },
 fail: function(){
  console.log("启用wx.login函数,失败!");
 },
 complete:function(){
  console.log("已启用wx.login函数");
 }
});

第二步:将登录态code发送给第三方服务器(即自家的服务器)

官方示例
把wx.login获取到的res.code返回值,直接以参数的形式,发起网络请求发送登录态给自家服务器
js部分:

//调用登录

wx.login({
  success: function(res) {
   console.log(res);
    if (res.code) {
      //就是在这里发起网络请求,使用wx.request(),将登录态发送给自家的服务器上
      wx.request({
        url: 'https://test.com/onLogin',
        data: {
          code: res.code
        },
        method: 'POST',  
        header: {'content-type': 'application/json'},
        success: function(data){
        }
      })
    } else {
      console.log('获取用户登录态失败!' + res.errMsg)
    }
  },
  fail: function(){
    console.log("启用wx.login函数,失败!");
  },
  complete:function(){
    console.log("已启用wx.login函数");
  }
});

第三步:客户端保存收到后台同事返回的3rd_session

将后台返回的3rd_session存入缓存中。

第四步:获取用户信息
相关连接:https://mp.weixin.qq.com/debug/wxadoc/dev/api/open.html
接上示例:
js部分:

wx.login({
  success: function(res) {
   console.log(res);
    if (res.code) {
      wx.request({
        url: 'https://test.com/onLogin',
        data: {
          code: res.code
        },
        method: 'POST',  
        header: {'content-type': 'application/json'},
        success: function(data){
           console.log(data)
        }
      })

    // 使用wx.getUserInfo获取用户信息
    wx.getUserInfo({
    success: function (res) {
        utils.log(res);
    },
    fail:function(){
     console.log("启用app.getUserInfo函数,失败!");
    },
    complete:function(){
     console.log("已启用app.getUserInfo函数");   
 });

第五步:登录态维护

通过上面四步,就可成功登录微信小程序了,但是还需要做登录维护。

也就是说,登录小程序后,然后又退出该小程序了。在一段时间内,再次进入该小程序,视为有效登陆,如果超出指定的时间,则视为无效登陆,需要重新登陆

相关连接;https://developers.weixin.qq.com/miniprogram/dev/api/signature.html#wxchecksessionobject

以上内容是从客户端角度书写,有不明之处随时问.

更详细参考链接:https://blog.csdn.net/michael_ouyang/article/details/72635263

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值