1. 首页
  2. 小程序开发
  3. 正文

微信小程序开发中的登录状态的一些代码分析

  众所周知,用户在打开微信小程序的时候,我们可以使用小程序自带的静默登录代码,获取用户的openid的,现在就分析来小程序的登录代码该如何写,才能确定的实现小程序的登录状态的功能。

  首先,判断小程序的用户有没有登录成功(包括静默登录),可以以下的代码来实现,如下图所示:


  讲一下这个方法的原理,获取用户的session3rd,如果session3rd为等于undefined或空,则表示用户尚未登录,这时我们可以使用静默登录的方法来获取用户的session3rd,也就是login(app),如下图所示:


  如果session3rd是存在的,则仍需要验证session3rd是否有效,如果无效,则又得重新调用login(app)方法重新登录。

  在静默登录方法执行后,可根据返回的code值,获取会员的信息,如以下代码所示:


  这样就完整的获取用户的登录状态了。下面还有一种,就是用户打开这个小程序的页面,但该页面必须获取头像和昵称才能查看,否则跳转到用户登录页面(用户可拒绝,拒绝后跳回首页),这里出现了一个问题,由于小程序JS运行的顺序,在我们获取用户的session3rd过程中,会直接用这个session3rd获取用户的昵称和头像,造成了session3rd为空或undefined的情况,调用获取用户信息的接口,所以在需要额外写两个方法,一个是在登录的情况用

  check_login(app,that) ,然后在session3rd有效的情况调用用户信息的接口,如下图所示:


  二是在session3rd无效的情况,用login_do(app, code,that) 方法,在wx.setStorageSync('session3rd', res_login.data.data.session3rd)里会获取到用户的session3rd,然后接口获取用户信息的接口。


  顺便说一下,方法里包含的that参数,指的就是用户打开的小程序页面。

    延伸阅读

  • 小程序名字修改的技巧规则

    我们都知道名字的意义,名称作为陌生人最先的认知,在物质喧嚣的时代,如何从众多名称中脱颖而出给陌人生留下一个良好且深刻的印象,这至关重要。随着小程序开发越来越多,运营者在给小程序...

  • 小程序商城怎么运营?

    小程序商城在当今电商领域日益受到瞩目,成功运营这样一个平台对于每个经营者而言都至关重要。那么,我们该如何着手呢?一、确立品牌方向首先,我们要清晰地定义自己的品牌在市场中的位置。...

  • 自建商城运营秘籍,吸引顾客有妙招!

    新建网站的运营与维护之道一、明确核心产品的市场定位要让新建的商城网站在竞争激烈的市场中脱颖而出,关键在于精准地定位核心产品。选择具有市场潜力的热销产品,并突出其独特之处,是吸引...

  • 小程序商城推广完全指南

    随着小程序商城的日益兴起,如何在竞争激烈的市场中脱颖而出成为了关键。小程序商城的推广方式多种多样,以下是一些有效的策略:1.公众号与小程序的结合:商家可以将小程序与公众号绑定,...

  • 推广引流方法有哪些,裂变营销什么意思

    推广引流方法有哪些,裂变营销什么意思除了各公域平台,另一个比较重要的引流场景,就是在微信中。一方面做信社交性强,对于身边用友的链接更紧密,微信上也会以群、公众号的形式聚集一群有...

本文来自投稿,不代表本人立场,如若转载,请注明出处:http://lnbdc.com/article/5017.html

(function(){ var src = (document.location.protocol == "http:") ? "http://js.passport.qihucdn.com/11.0.1.js?1d7dde81dc0903e04d3ac0b9599444f6":"https://jspassport.ssl.qhimg.com/11.0.1.js?1d7dde81dc0903e04d3ac0b9599444f6"; document.write('<\/mip-script>'); })(); (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();