微信小程序登录注册实现

一、小程序基本配置

在开始实现微信小程序登录注册功能之前,我们需要先完成小程序的基本配置。具体步骤如下:

1、登录微信公众平台进行小程序开发,创建小程序,并且获取到AppID。

2、为小程序添加合法域名,这些域名需要在调用微信API时使用,包括登录、获取用户信息等。添加合法域名有两种方法:一种是在小程序设置中添加,另一种是在服务器配置文件中添加。

3、创建小程序登录注册页面,将页面地址添加到小程序的“app.json”文件中,使其成为小程序的子页面。


// app.json文件
{
  "pages": [
    "pages/login/login",
    "pages/index/index",
    "pages/register/register"
  ],
  "window": {
    "backgroundTextStyle": "light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "小程序登录注册",
    "navigationBarTextStyle": "black"
  },
  "tabBar": {
    "selectedColor": "#1296db",
    "color": "#8a8a8a",
    "borderStyle": "#e6e6e6",
    "list": [
      {
        "pagePath": "pages/index/index",
        "text": "首页",
      },
      {
        "pagePath": "pages/login/login",
        "text": "登录",
      },
      {
        "pagePath": "pages/register/register",
        "text": "注册",
      }
    ]
  }
}

二、小程序登录功能实现

为了实现小程序登录功能,我们需要使用微信开发者工具提供的wx.login()接口从微信服务器获取用户临时登录凭证code。获取code之后,我们需要将code传递给服务器,在服务器端进行登录验证,通过后返回用户的信息给小程序。

1、在登录页面中使用wx.login()接口获取用户登录凭证code。


// login.js文件
Page({
  data: {
  },
  onLoad: function() {
    // 小程序启动时首先调用wx.login()获取用户登录凭证code
    wx.login({
      success: res => {
        if (res.code) {
          // 利用code传递给服务器进行登录验证
          wx.request({
            url: 'https://example.com/api/user/login',
            data: {
              code: res.code
            },
            success: function (res) {
              if (res.data.code === 0) {
                var user = res.data.data
                // 将用户信息存储到本地
                wx.setStorageSync('user', user)
              } else {
                wx.showModal({
                  title: '提示',
                  content: res.data.msg,
                  success: function (res) {
                    if (res.confirm) {
                      console.log('用户点击确定')
                    }
                  }
                })
              }
            }
          })
        }
      }
    })
  },
})

2、在服务器端进行登录验证,验证成功后返回用户信息。


// login.php文件
 0,
    'msg' => '登录成功',
    'data' => $user
  );
} else {
  $result = array(
    'code' => -1,
    'msg' => '用户不存在,请先注册',
    'data' => null
  );
}

echo json_encode($result);
?>

三、小程序注册功能实现

在实现小程序注册功能时,我们需要在小程序中创建一个注册页面,用户在该页面输入注册信息后,将用户信息传递给服务器进行注册。注册成功后,自动跳转到登录页面,用户可以使用新的账号密码进行登录。

1、创建小程序注册页面,页面布局可以参照下图:


// register.wxml文件

  
    
      
        
      
      <input placeholder="请输入您的用户名" value="{{username}}" bindinput="inputUsername">
    
    
      
        
      
      <input type="password" placeholder="请输入您的密码" value="{{password}}" bindinput="inputPassword">
    
    
      
        
      
      <input type="password" placeholder="请确认您的密码" value="{{confirmPassword}}" bindinput="inputConfirmPassword">
    
    
  

2、在小程序注册页面中处理用户注册输入信息,调用wx.request()接口将用户信息传递给服务器进行注册。


// register.js文件
Page({
  data: {
    username: '',
    password: '',
    confirmPassword: '',
  },
  inputUsername: function(e) {
    this.setData({
      username: e.detail.value
    })
  },
  inputPassword: function(e) {
    this.setData({
      password: e.detail.value
    })
  },
  inputConfirmPassword: function(e) {
    this.setData({
      confirmPassword: e.detail.value
    })
  },
  onRegister: function() {
    var that = this;
    if (that.data.password != that.data.confirmPassword) {
      wx.showModal({
        title: '提示',
        content: '密码不一致',
        success: function (res) {
          if (res.confirm) {
            console.log('用户点击确定')
          }
        }
      })
      return
    }
    wx.request({
      url: 'https://example.com/api/user/register',
      data: {
        username: that.data.username,
        password: that.data.password,
      },
      success: function (res) {
        if (res.data.code === 0) {
          wx.showToast({
            title: '注册成功',
            icon: 'success'
          })
          wx.navigateTo({
            url: '/pages/login/login',
          })
        } else {
          wx.showModal({
            title: '提示',
            content: res.data.msg,
            success: function (res) {
              if (res.confirm) {
                console.log('用户点击确定')
              }
            }
          })
        }
      }
    })
  }
})

3、在服务器端处理用户注册请求,将用户信息存入数据库。


// register.php文件
 0,
    'msg' => '注册成功',
    'data' => null
  );
} else {
  $result = array(
    'code' => -1,
    'msg' => '注册失败,请稍后重试',
    'data' => null
  );
}

echo json_encode($result);
?>

四、小程序获取用户信息

在用户登录成功后,我们可以调用微信开发者工具提供的wx.getUserInfo()接口获取用户的基本信息,包括昵称、头像等,并将用户信息存储到本地。


// index.js文件
Page({
  data: {
    userInfo: null
  },
  onLoad: function () {
    var user = wx.getStorageSync('user')
    if (user) {
      this.getUserInfo(user.openid)
    }
  },
  getUserInfo: function (openid) {
    var that = this;
    wx.getUserInfo({
      success: function (res) {
        wx.setStorageSync('userInfo', res.userInfo)
        that.setData({
          userInfo: res.userInfo
        })
        wx.request({
          url: 'https://example.com/api/user/saveUserInfo',
          data: {
            openid: openid,
            userInfo: res.userInfo,
          },
          success: function (res) {
          }
        })
      },
      fail: function (res) {
        wx.showModal({
          title: '提示',
          content: '获取用户信息失败,请检查权限设置',
          success: function (res) {
            if (res.confirm) {
              console.log('用户点击确定')
            }
          }
        })
      }
    })
  }
})

五、小结

通过微信小程序提供的wx.login()接口,我们可以获取到用户登录凭证code,并通过调用服务器接口进行登录验证。而在实现小程序注册功能时,则需要调用wx.request()接口将用户注册信息传递给服务器进行注册。在登录成功后,我们可以使用wx.getUserInfo()接口获取用户的信息,并将其存储到本地。

原创文章,作者:TUYFA,如若转载,请注明出处:https://www.506064.com/n/349407.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
TUYFA的头像TUYFA
上一篇 2025-02-15 17:09
下一篇 2025-02-15 17:09

相关推荐

  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • Python程序文件的拓展

    Python是一门功能丰富、易于学习、可读性高的编程语言。Python程序文件通常以.py为文件拓展名,被广泛应用于各种领域,包括Web开发、机器学习、科学计算等。为了更好地发挥P…

    编程 2025-04-29
  • Python购物车程序

    Python购物车程序是一款基于Python编程语言开发的程序,可以实现购物车的相关功能,包括商品的添加、购买、删除、统计等。 一、添加商品 添加商品是购物车程序的基础功能之一,用…

    编程 2025-04-29
  • 爬虫是一种程序

    爬虫是一种程序,用于自动获取互联网上的信息。本文将从如下多个方面对爬虫的意义、运行方式、应用场景和技术要点等进行详细的阐述。 一、爬虫的意义 1、获取信息:爬虫可以自动获取互联网上…

    编程 2025-04-29
  • Vb运行程序的三种方法

    VB是一种非常实用的编程工具,它可以被用于开发各种不同的应用程序,从简单的计算器到更复杂的商业软件。在VB中,有许多不同的方法可以运行程序,包括编译器、发布程序以及命令行。在本文中…

    编程 2025-04-29
  • Python一元二次方程求解程序

    本文将详细阐述Python一元二次方程求解程序的相关知识,为读者提供全面的程序设计思路和操作方法。 一、方程求解 首先,我们需要了解一元二次方程的求解方法。一元二次方程可以写作: …

    编程 2025-04-29
  • 如何使用GPU加速运行Python程序——以CSDN为中心

    GPU的强大性能是众所周知的。而随着深度学习和机器学习的发展,越来越多的Python开发者将GPU应用于深度学习模型的训练过程中,提高了模型训练效率。在本文中,我们将介绍如何使用G…

    编程 2025-04-29
  • Web程序和桌面程序的区别

    Web程序和桌面程序都是进行软件开发的方式,但是它们之间存在很大的区别。本文将从多角度进行阐述。 一、运行方式 Web程序运行于互联网上,用户可以通过使用浏览器来访问它。而桌面程序…

    编程 2025-04-29
  • 微信小程序和Python数据交互完整指南

    本篇文章将从多个方面介绍如何在微信小程序中实现与Python的数据交互。通过本文的学习,您将掌握如何将微信小程序与后台Python代码结合起来,实现更丰富的功能。 一、概述 微信小…

    编程 2025-04-29

发表回复

登录后才能评论