微信小程序登录态和检验注册过没的app.js写法

微信小程序登录态和检验注册的实现涉及到小程序端的代码和服务端的代码,因此在您进行开发时需要分别处理。

  1. 实现登录态

小程序的登录态是通过wx.login()获取的,具体实现步骤如下:

在小程序中,在需要登录的页面中,首先调用wx.login()获取到微信返回的code码,然后使用wx.request()将该code码发送到服务端。以下是示例代码:

wx.login({
  success: function(res) {
    if (res.code) {
      wx.request({
        url: 'http://example.com/api/login',
        data: {
          code: res.code
        },
        success: function(res) {
          console.log(res.data);
          // 将服务端返回的登录态存储在本地
          wx.setStorageSync('token', res.data.token);
        }
      });
    } else {
      console.log('登录失败!' + res.errMsg);
    }
  }
});

注意,在上面的代码中,我们将服务端返回的登录态存储在本地,方便以后使用。

  1. 检验注册

当用户登录后,将使用用户的登录态调用服务端的API,以便确认用户是否已经注册。以下是一个示例代码:

wx.request({
  url: 'http://example.com/api/check_registered',
  data: {
    token: wx.getStorageSync('token')
  },
  success: function(res) {
    console.log(res.data);
    if (res.data.code === 0) {
      // 用户已注册
      // 在该函数中继续执行业务逻辑
      do_business_logic();
    } else {
      // 用户未注册
      // 在该函数中执行跳转至注册页的业务逻辑
      wx.navigateTo({
        url: '/pages/register/register'
      });
    }
  }
});

注意,在上述代码中,我们调用了wx.getStorageSync('token')函数来获取存储在本地的登录态。

除了上述示例之外,您还可以参考以下代码:

// login.js
Page({
  /**
   * 登录后,调用该函数检测是否已经注册
   */
  checkRegistered: function() {
    wx.request({
      url: 'http://example.com/api/check_registered',
      data: {
        token: wx.getStorageSync('token')
      },
      success: function(res) {
        console.log(res.data);
        if (res.data.code === 0) {
          // 用户已注册
          // 在该函数中继续执行业务逻辑
          do_business_logic();
        } else {
          // 用户未注册
          // 在该函数中执行跳转至注册页的业务逻辑
          wx.navigateTo({
            url: '/pages/register/register'
          });
        }
      }
    });
  }
});

// app.js
App({
  /**
   * 小程序启动时,检查登录态并检测是否已经注册
   */
  onLaunch: function() {
    wx.checkSession({
      success: function() {
        // session未过期,检查是否已经注册
        wx.getStorage({
          key: 'token',
          success: function(res) {
            wx.request({
              url: 'http://example.com/api/check_registered',
              data: {
                token: res.data
              },
              success: function(res) {
                console.log(res.data);
                if (res.data.code === 0) {
                  // 用户已注册
                  // 在该函数中继续执行业务逻辑
                  do_business_logic();
                } else {
                  // 用户未注册
                  // 在该函数中执行跳转至注册页的业务逻辑
                  wx.navigateTo({
                    url: '/pages/register/register'
                  });
                }
              }
            });
          },
          fail: function() {
            // 本地存储未找到token,重新登录
            wx.navigateTo({
              url: '/pages/login/login'
            });
          }
        });
      },
      fail: function() {
        // session过期,重新登录
        wx.navigateTo({
          url: '/pages/login/login'
        });
      }
    });
  }
});

在上述代码中,我们将检验用户是否已注册的逻辑放置在了login和onLaunch这两个函数中。这样一来,当用户在登录页面登录成功后,会自动调用checkRegistered()函数检验用户是否已经注册。而在小程序启动时,会自动进行检验登录态,并根据检验结果执行相应的业务逻辑。

希望你能够从以上的示例和代码中学到些有用的内容,祝您完成小程序开发的一切任务成功。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:微信小程序登录态和检验注册过没的app.js写法 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • 共享对象的作用是什么?

    以下是关于共享对象的作用的完整使用攻略: 共享对象的作用 共享对象是指多个线程可以访问的对象。在多线程编程中,共享对象是常常见的,例如共享变量、共享队列等。共享对象的作用是在多线程编程中实现线程间的通信和数据共享。多个线程可以同时访问共享对象,从而实现数据的共享和交换。共享对象可以用来实现线程间的同步和协作,从而提高程序的并发性和效率。 共享的示例 以下两个…

    Java 2023年5月12日
    00
  • Java Timer与TimerTask类使程序计时执行

    要使用Java Timer与TimerTask类使程序计时执行,需要遵循以下步骤: 步骤一:导入相关类库 要使用Java Timer和TimerTask类,需要在代码中导入相关类库,例如: import java.util.Timer; import java.util.TimerTask; 步骤二:创建任务定时器 要使用Java Timer和TimerTa…

    Java 2023年6月1日
    00
  • spring-boot使用AOP统一处理日志

    下面是详细讲解“spring-boot使用AOP统一处理日志”的完整攻略。 什么是AOP? AOP(Aspect Oriented Programming),中文翻译为面向切面编程,它允许我们通过预编译方式和运行期动态代理实现程序功能的统一维护。 AOP常见的应用场景 AOP的应用场景非常多,最常见的包括:日志记录、权限控制、事务管理、性能统计、异常处理等。…

    Java 2023年5月15日
    00
  • Java实现图书借阅系统

    Java实现图书借阅系统的完整攻略 介绍 本文将介绍如何使用Java编程语言实现简单的图书借阅系统。该系统包括了书籍的添加、删除和查询功能,以及具有借阅和归还功能的用户界面。 开发环境 本文将使用Java编程语言进行开发。Java具有强大的面向对象编程特性,并且易于学习和使用。我们将使用Java的标准库和一些第三方库来实现该系统。 具体的开发环境和所使用的库…

    Java 2023年5月19日
    00
  • Java实现解析zip压缩包并获取文件内容

    针对“Java实现解析zip压缩包并获取文件内容”,可以按照以下步骤进行: 导入java.util.zip包: 使用ZipFile类需要导入java.util.zip下的所有类。 import java.util.zip.*; 打开zip文件: 使用ZipFile类,可以打开zip压缩文件。 ZipFile zip = new ZipFile("t…

    Java 2023年5月19日
    00
  • Java分层概念详解

    Java分层概念详解 什么是分层概念? 分层概念是软件架构中一种重要的设计思想,它将整个系统按照功能划分为多个不同的层次,每一层都有不同的工作职责和业务逻辑。每一层都可以独立进行开发和测试,而不会影响其他层的功能。同时,各个层之间通过接口交互数据,从而使得整个系统更加稳定、可靠、易于维护和升级。 一个标准的分层体系应该包含以下几个层次: 表现层(Presen…

    Java 2023年5月20日
    00
  • 详解Spring Boot 目录文件结构

    下面是详解Spring Boot目录文件结构的攻略。 目录文件结构 作为一款快速构建Java Web应用的框架,Spring Boot提供了一套默认的目录结构,旨在帮助开发人员快速搭建应用并进行开发,其目录文件结构如下: project ├── src/main/java │ └── com/example/demo │ ├── controller │ ├…

    Java 2023年5月15日
    00
  • Java使用BigDecimal进行高精度计算的示例代码

    下面是Java使用BigDecimal进行高精度计算的完整攻略。 概述 在进行浮点运算或需要精确计算金额等数据时,常常会遇到精度损失的问题。这时候可以使用Java的BigDecimal类来进行高精度计算。BigDecimal类可以精确表示任意精度的小数,并支持基本的算术运算、比较运算和舍入操作。 BigDecimal类的使用 创建BigDecimal对象 创…

    Java 2023年5月30日
    00
合作推广
合作推广
分享本页
返回顶部