首页 > access突然需要登录_早知道早好,微信小程序登录开发需要注意的事项

access突然需要登录_早知道早好,微信小程序登录开发需要注意的事项

44bf1a52d511d11540c6a72fa11f8dab.png

最近公司要做一个企业微信的小程序,方便企业内的成员来登录,以便一些公司内的业务,只限于公司内的成员来操作,因为有微信小程序的开发经验,所以先当作微信小程序来开发了!

cb13bda96d0d2b01ae37edfade8a9f7a.png

首先来讲一下这个企业微信小程序与微信小程序登录的不同,下面是微信小程序登录的流程:

c8fd7146aa6c3a6c565542131479744f.png

小程序内需要调用wx.login(),获取临时登录凭证code,并回传到开发者服务器,然后在开发者服务器上,也就是对接小程序的后段服务,需要拿到传过来的code,调用https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code,传入相关的值来获取用户唯一标识OpenID和会话密钥session_key。这个OpenID就可以关联你的自定义登录态,来进行小程序和后端数据的交换,session_key是对用户数据进行加密签名的密钥。

而企业微信小程序的登录流程如下:

051e4027be2124d79ac971fd3fb9ec0f.png

在企业微信小程序登录开发中,小程序需要调用wx.qy.login()来获取临时登录凭证code,将这个临时登录凭证code传到我们开发的后端服务上,后端需要先调用https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=&corpsecret=来获取access_token,拿到这个access_token之后才和那个临时登录凭证code配合,调用接口https://qyapi.weixin.qq.com/cgi-bin/miniprogram/jscode2session?access_token=ACCESS_TOKEN&js_code=CODE&grant_type=authorization_code来获取userid和secretkey,注意,这里是userid,而不是微信小程序的openid,其次是调用的接口也不同,后面的自定义登录态与userid关联之后的业务操作,就相差无几了!

以上是企业微信小程序和微信小程序的登录操作流程,在登录的过程中,会出现下面的问题。

第一个问题就是获取token的频率问题,频繁的调用肯定是不行的,微信是会在一定时间内做限制的,这时就需要在后端程序的当中做限制,比方说在请求登录之前先判断token是否还在有效期,在有效期之内就可以直接返回,而不是去请求获取,这个问题就有大神做出了demo供大家参考:

首先发起请求:

d13798df192332f2ba2466e19d45daaf.png
a60f40cb6269a8b2bc7760bfdafe77e5.png

第二个问题就是自定义的登录态,如果想用session做登录态,来保持小程序和后端的业务交互,就要注意一个问题了,就是小程序发起的请求,session的状态是无法保持的,它不像浏览器直接访问你的后端,可以判断后续的请求是不是来自同一个客户,因为小程序发起的请求,是先要经过微信的服务器,然后转发到我们开发的后端服务器,这样使用session,后端就无法判断请求是否来自同一个用户,简单的解决方法就是把请求登录的返回的set-cookie小程序保存起来,在后续的请求再塞到cookie中发往后端:

26182b6e6a7bd37dc174486fcda5e337.png

还有一种就是不使用session,可以结合Redis来完成登录态的校验,正好Redis也提供了对某一键值设置过期时间的方法,用起来得心应手!

10c76bbfa51bb89ad481d1a43d4b3ede.png

更多相关:

  • sys.argv[]说白了就是一个从程序外部获取参数的桥梁,这个“外部”很关键,因为我们从外部取得的参数可以是多个,所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一个列表,所以才能用[]提取其中的元素。其第一个元素是程序本身,随后才依次是外部给予的参数。下面我们通过一个极简单的test.py程序的运行结果来说...

  •   标题:创意虾-程序纹理Blender大师班 信息: 什么是程序纹理? 程序纹理将简单的数学转换为无限的真实感着色器,具有无限的多样性和分辨率。 超越看起来像一团像素特写的图像纹理,运用程序纹理的力量,清晰的细节和没有重复的模式。 你是不是在玩节点滑块,得到了一些有趣的结果,但不确定引擎盖下到底发生了什么?掌握了节...

  • gprof用于分析函数调用耗时,可用gprof分析最耗时的函数,以便优化程序。 gcc链接时也一定要加-pg参数,以使程序运行结束后生成gmon.out文件,供gprof分析。 gprof默认不支持多线程程序,默认不支持共享库程序。 gcc 编译程序时添加编译选项-pg 运行程序,程序退出时生成 gmon.outgprof ./...

  • 一.虚拟机、linux简介 简单介绍一下虚拟机还有就是各种操作系统,比如centos,Ubuntu 操作系统:linux(centos、Ubuntu、redhat),Android,Windows(xp、win8、win10) 进程,多个程序,分时技术,并行技术 一次打开多个程序,我们在只有一个cpu,如何让这些程序进...

  • 讲到第三方登录分享,第一反应大概就是友盟、ShareSDK之类。集成微信、QQ、微博三个平台的话,友盟的SDK有62.9M,ShareSDK的包有74M。如果直接集成最原始的三个平台的SDK,大小总共为51M。(关于集成前期的配置,可参考原生接入微博、微信和QQ的登录及分享)WechatIMG286.jpeg我们一般会在各个平台的授权...

  • 一、写在前面     关于qq微信登录的原理之流我就不一一赘述了,对应的官网都有,在这里主要是展示我是怎么实现出来的,看了好几个博客,有的是直接复制官网的,有的不知道为什么实现不了。我只能保证我的这个是我实现后才贴出来的,本文有看不懂的地方请结合官网看。(话说我感觉我写博客废话好多) 二、准备工作     通过以下官网获得相应AppI...

  • 什么是SSH? SSH对应 struts spring hibernatestruts 采用MVC模式,主要是作用于用户交互spring 采用IOC和AOP~作用比较抽象,是用于项目的松耦合hibernate 是对象持久化框架,其实就是实体类和数据库表建立关系,操作类就会触发相应的sql语句,可以不用写任何sql语句,完成数据库编程(...

  •  环境准备 本文使用Maven构建,因此需要一点Maven知识。首先准备环境依赖:  Java代码                   junit          junit       ...

  • 我一直在用Ubuntu发型版本的Linux系统,很喜欢把它做得更加的方便易用,特别是Ubuntu的Server版本,因为没有Desktop的 GUI界面,也没有自动登录设置,无法通过简单的点击鼠标方式来设置自动登录,在查阅了一些资料后,发现使用重定向就可以简单的解决这个问题。     其实想要在Ubuntu Server上自动登录非常...

  • 导读:微信是我们生活中必不可少的聊天工具,但是人们在日常生活中经常会有工作微信和生活微信分开的情况,目前很多安卓机支持一键双开,但是电脑端却锁定只允许打开一个;本文将重点介绍Win 10实现微信多开的几种方法,希望给大家带来帮助。文/黑七方法一:同一电脑多客户端登录此类方案最安全,适用于win10系统。1、安装微信客户端一大多电脑已经...

  •   依次排查: 1、menifest.json中配置了微信的appid是不是微信开放平台(微信开放平台)对应的APP id,包名是否和微信开放平台对应APP的包名一致(com.******.app) 2、服务端请求prepareid是否正确返回 3、服务端返回数据格式与官方是否一致(还有你的付款金额不能低于0.01元也就是不能...

  • 以前我开过一些帖子,我们内部也做过一些讨论,我们从张小龙的碎屏图中   ,发现了重要讯息: 1:微信支付将成为重要场景; 2:这些应用与春节关系不小,很多应用在春节时,有重要的场景开启可能性; 3:春节是一个重要的推广时机,非常适合推广,微信应该不会错过这个时机; 4:春节前需要做好准备,那么预留一定的天数是必要的,10-15天是...

  •   据证券时报消息,腾讯携手康佳推微信电视,具有微信传屏、微信弹幕、微信遥控等基于腾讯微信平台的电视功能。想了吧?别急,11月5日,微信互联电视将在康佳全国终端门店全部上线。微信电视2.0版将新增语音搜索、节目单分享推荐自定义等  微信传屏功能在哪里找? 昨日,康佳集团在深圳总部展厅举行了“易TV微信互联电视品鉴会”,并宣布易...

  • 微信公众平台开发 微信公众平台开发模式 企业微信公众平台 微信一站到底 在线答题 在线做题 作者:方倍工作室 原文: http://www.cnblogs.com/txw1958/archive/2013/06/11/wechat38-online_answer.html 微信一站到底 在线答题 在线做题 方倍工作室 一站到底题库...