一种微信小程序获取登录凭证和用户信息的方法及终端技术

技术编号:36546369 阅读:15 留言:0更新日期:2023-02-04 16:58
本发明专利技术提供了一种微信小程序获取登录凭证和用户信息的方法及终端,包括步骤:在微信小程序中预先注册监听事件,所述监听事件用于调用wx.login方法以获取用户登录凭证;获取用户点击登录按钮的点击事件,通知所述监听事件调用wx.login方法,以获取所述用户登录凭证;调用wx.getUserProfile方法并在触发用户授权确认后获取所述用户信息。本发明专利技术通过预先在微信小程序中注册一个监听事件,在用户触发了登录小程序的点击按钮时,先通知监听事件调用wx.login以获取用户登录凭证,再调用wx.getUserProfilet获取用户信息,保证了在微信小程序登录过程中wx.login和wx.getUserProfile的顺序调用,以成功获取登录凭证和用户信息,使用户登录凭证和用户信息能够匹配,避免出现“解密失败”。。。

【技术实现步骤摘要】
一种微信小程序获取登录凭证和用户信息的方法及终端


[0001]本专利技术涉及微信小程序开发
,特别涉及一种微信小程序获取登录凭证和用户信息的方法及终端。

技术介绍

[0002]在微信小程序开发中,有些场景需要同时获取用户登录凭证和用户信息,如微信第三方登录。这两种信息需要从微信小程序的两个不同的函数中去获取,其中获取用户登录凭证使用wx.login方法,获取用户信息使用wx.getUserProfile方法。现有常规的获取用户登录凭证和用户信息的方案如下:
[0003]方案一:将wx.getUserProfile放在wx.login的回调中,但在2021年04月13日更新后的微信最新版的小程序接口中,wx.login和wx.getUserProfile无法放在一起执行,wx.getUserProfile必须直接放在按钮的点击事件里,因此该方案目前已不适用。
[0004]方案二:在按钮的点击事件中先执行wx.getUserProfile,再执行wx.login,但使用该方案会概率性地出现用户登录凭证和用户信息中的加密数据(例如encryptedData等)不匹配,从而出现“解密失败”。
[0005]方案三:将wx.login和wx.getUserProfile都封装成promise对象,然后顺序调用wx.login和wx.getUserProfile,在promise.all()函数中处理结果,但该方案需要将wx.login和wx.getUserProfile都封装成promise对象,由于promise是ES4的特性,对于没有接触ES4的开发人员来讲,具有一定的编写复杂度。

技术实现思路

[0006]本专利技术所要解决的技术问题是:提供一种微信小程序获取登录凭证和用户信息的方法及终端,以成功获取登录凭证和用户信息。
[0007]为了解决上述技术问题,本专利技术采用的技术方案为:
[0008]一种微信小程序获取登录凭证和用户信息的方法,包括步骤:
[0009]S1、在微信小程序中预先注册监听事件,所述监听事件用于调用wx.login方法以获取用户登录凭证;
[0010]S2、获取用户点击登录按钮的点击事件,通知所述监听事件调用wx.login方法,以获取所述用户登录凭证;
[0011]S3、调用wx.getUserProfile方法并在触发用户授权确认后获取所述用户信息。
[0012]为了解决上述技术问题,本专利技术采用的另一个技术方案为:
[0013]一种微信小程序获取登录凭证和用户信息的终端,包括存储器、处理器以及存储在存储器上并可在处理器上执行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0014]S1、在微信小程序中预先注册监听事件,所述监听事件用于调用wx.login方法以获取用户登录凭证;
[0015]S2、获取用户点击登录按钮的点击事件,通知所述监听事件调用wx.login方法,以获取所述用户登录凭证;
[0016]S3、调用wx.getUserProfile方法并在触发用户授权确认后获取所述用户信息。
[0017]本专利技术的有益效果在于:本专利技术提供一种微信小程序获取登录凭证和用户信息的方法及终端,通过预先在微信小程序中注册一个监听事件,在用户触发了登录小程序的点击按钮时,先通知监听事件调用wx.login以获取用户登录凭证,再调用wx.getUserProfilet获取用户信息,保证了在微信小程序登录过程中wx.login和wx.getUserProfile的顺序调用,以成功获取登录凭证和用户信息,使用户登录凭证和用户信息能够匹配,避免出现“解密失败”。
附图说明
[0018]图1为本专利技术实施例的一种微信小程序获取登录凭证和用户信息的方法的流程图;
[0019]图2为本专利技术实施例的一种微信小程序获取登录凭证和用户信息的终端的结构图。
[0020]标号说明:
[0021]1、一种微信小程序获取登录凭证和用户信息的终端;2、存储器;3、处理器。
具体实施方式
[0022]为详细说明本专利技术的
技术实现思路
、所实现目的及效果,以下结合实施方式并配合附图予以说明。
[0023]在此之前,为了便于理解本专利技术的技术方案,对于本专利技术中涉及的英文、特定名词等进行如下说明:
[0024]wx.login:微信小程序中获取用户登录凭证的接口。
[0025]wx.getUserProfile:微信小程序获取用户信息的接口。
[0026]encryptedData:包括敏感数据在内的完整用户信息中的加密数据。
[0027]iv:加密算法的初始向量。
[0028]请参照图1,一种微信小程序获取登录凭证和用户信息的方法,包括步骤:
[0029]S1、在微信小程序中预先注册监听事件,所述监听事件用于调用wx.login方法以获取用户登录凭证;
[0030]S2、获取用户点击登录按钮的点击事件,通知所述监听事件调用wx.login方法,以获取所述用户登录凭证;
[0031]S3、调用wx.getUserProfile方法并在触发用户授权确认后获取所述用户信息。
[0032]由上述描述可知,本专利技术的有益效果在于:通过预先在微信小程序中注册一个监听事件,在用户触发了登录小程序的点击按钮时,先通知监听事件调用wx.login以获取用户登录凭证,再调用wx.getUserProfilet获取用户信息,保证了在微信小程序登录过程中wx.login和wx.getUserProfile的顺序调用,以成功获取登录凭证和用户信息,使用户登录凭证和用户信息能够匹配,避免出现“解密失败”。
[0033]进一步地,所述步骤S2和步骤S3之间还包括步骤:
[0034]S21、所述监听事件将执行结果赋值给一个全局变量:
[0035]所述步骤S3还包括:
[0036]调用wx.getUserProfile方法后,采用周期计时器每隔第一预设时间判断所述全局变量中是否有值,若有,则停止所述周期计时器并获取所述全局变量中的所述用户登录凭证,否则判断所述周期计时器的计时时长是否超过第二预设时间,若是,则停止所述周期计时器并返回登录超时提示,否则继续等待下一个所述第一预设时间。
[0037]由上述描述可知,在执行了wx.getUserProfile之后再开始周期计时器判断全局变量中是否存在用户登录凭证,为监听事件预留一定的执行时间,同时通过周期计时器的周期性检测,有效判断监听事件是否成功获取用户登录凭证,保证未获取成功时能及时返回登录超时提示。
[0038]进一步地,所述第一预设时间为250~750ms;
[0039]所述第二预设时间为2~4s。
[0040]由上述描述可知,将第一预设时间和第二预设时间控制在一定的范围内,保证有效判断是否成功获取用户登录凭证的同时,减少用户的等待时间,提本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种微信小程序获取登录凭证和用户信息的方法,其特征在于,包括步骤:S1、在微信小程序中预先注册监听事件,所述监听事件用于调用wx.login方法以获取用户登录凭证;S2、获取用户点击登录按钮的点击事件,通知所述监听事件调用wx.login方法,以获取所述用户登录凭证;S3、调用wx.getUserProfile方法并在触发用户授权确认后获取所述用户信息。2.根据权利要求1所述的一种微信小程序获取登录凭证和用户信息的方法,其特征在于,所述步骤S2和步骤S3之间还包括步骤:S21、所述监听事件将执行结果赋值给一个全局变量:所述步骤S3还包括:调用wx.getUserProfile方法后,采用周期计时器每隔第一预设时间判断所述全局变量中是否有值,若有,则停止所述周期计时器并获取所述全局变量中的所述用户登录凭证,否则判断所述周期计时器的计时时长是否超过第二预设时间,若是,则停止所述周期计时器并返回登录超时提示,否则继续等待下一个所述第一预设时间。3.根据权利要求2所述的一种微信小程序获取登录凭证和用户信息的方法,其特征在于,所述第一预设时间为250~750ms;所述第二预设时间为2~4s。4.根据权利要求1所述的一种微信小程序获取登录凭证和用户信息的方法,其特征在于,所述步骤S3之后还包括步骤:S4、返回获取到的所述用户登录凭证和所述用户信息至服务端以供所述服务端登录第三方。5.根据权利要求1至4任一所述的一种微信小程序获取登录凭证和用户信息的方法,其特征在于,所述用户信息包括用户基础信息、加密数据和加密算法的初始向量。6.一种微信小程序获取登录凭证和用户信息的终端,其特征在于,包括存...

【专利技术属性】
技术研发人员:刘德建陈圆治陈宏
申请(专利权)人:福建天泉教育科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1