微信小程序登錄註冊實現

一、小程序基本配置

在開始實現微信小程序登錄註冊功能之前,我們需要先完成小程序的基本配置。具體步驟如下:

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/zh-hk/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

發表回復

登錄後才能評論