时间:2021-05-18
0、可参考的官方页面
获取登录凭证:https://developers.weixin.qq.com/miniprogram/dev/api/wx.login.html
检查登录态是否过期: https://developers.weixin.qq.com/miniprogram/dev/api/wx.checkSession.html
备注:你要明白什么是登录态:这里的登录态是微信小程序自己的登录态,我们可以再自己写个登录页面作为自己的登录态,不过为了用户体验良好我直接以微信登录态做为自己的登录态。所以我的整个小程序是直接自动登录的
注意:微信小程序缓存很容易被清除,所以你必须时刻提防小程序缓存被清除的状态下怎么处理。
备注:我从后台返回来给小程序的对象格式为:
1、流程
(1)调用wx.checkSession检查用户登录态是否过期,如果没有过期就检查用户注册没注册①,如果过期了就去重新执行登录流程②
(2)②的流程为:调用wx.login来获取登录凭证(code),然后把code发给后台,后台调用 auth.code2Session,使用 code 换取 openid 等信息来获取openId , 把openId返回给小程序, 然后把openId放到小程序缓存里面,然后检查用户注册没注册①
(3)①的流程为:先从缓存查该用户注册没注册过(通过检查缓存变量registered存不存在),有就是老用户,没有就去后台通过openId查有没有这个用户,把结果返回给小程序,如果后台有这个用户,说明已经注册过,就把在缓存里加个registered并赋值true。
(4)然后我们就可以在其他页面通过registered来判断用户注册没注册过,从而跳转进入注册页面或者是主页
2、app.js代码
App({ globalData: { serverHost: 'http://localhost:8080', //服务器域名 }, onLaunch: function() { var that = this; //检查登录态是否过期 wx.checkSession({ success() { // session_key 未过期,并且在本生命周期一直有效 console.log("【用户小程序登录态未过期】"); that.isRegister(); }, fail() { // session_key 已经失效,需要重新执行登录流程 that.wxLogin(); } }) }, //查看当前用户是否已经注册过 isRegister: function() { var that = this; var host = this.globalData.serverHost; // (先从缓存查该用户,有就是老用户,没有就后台查有没有这个用户,后台查到有这个用户就放缓存,没有就是新用户) wx.getStorage({ key: 'registered', success(res) { console.log("【通过缓存查询到该用户是已经注册过的】"); console.log("【当前用户的openid为:】" + wx.getStorageSync('openid')); }, fail(res) { var openid; openid = wx.getStorageSync('openid'); wx.request({ url: host + '写自己的后台请求检查用户存不存在的URL', method: 'POST', data: { openId: openid, }, header: { "Content-Type": "application/x-patible; MSIE 6.0; Windows NT 5.1;SV1)"); // 建立实际的连接 connection.connect(); // 定义 BufferedReader输入流来读取URL的响应 in = new BufferedReader(new InputStreamReader( connection.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { System.out.println("【HTTP发送GET请求出现异常】:访问URL:"+url+",错误:"+e.getMessage()); } // 使用finally块来关闭输入流 finally { try { if (in != null) { in.close(); } } catch (Exception e2) { System.out.println("【HTTP请求关闭输入流异常】:访问URL:"+url+",错误:"+e2.getMessage()); } } return result; }}上面只是工具类直接拿就行,真正业务逻辑要自己写,我只给出重点部分
总结
以上所述是小编给大家介绍的微信小程序登录态和检验注册过没的app.js写法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
微信小程序闭包写法在入口处的app.js中定义了一个获取用户OpenId的函数,在微信的登录接口wx.login中发起网络请求。这个函数传入一个回调函数cbge
本文实例讲述了微信小程序设置全局请求URL及封装wx.request请求操作。分享给大家供大家参考,具体如下:app.js:App({//设置全局请求URLgl
微信小程序自动登陆PHP源码实例app.js初始化APP自动登陆您也可以在任何地方进行用户登陆验证用法:首先在js文件中定义varapp=getApp();ap
微信小程序标题栏和导航栏的设置方法,具体内容如下设置标题栏标题栏window在app.json文件里面,通过window对象里面的属性进行设置示例:app.js
本文实例讲述了微信小程序公用参数与公用方法用法。分享给大家供大家参考,具体如下:公用参数:小程序的公共参数,例如网络请求地址、可配置项,可以写在app.js文件