微信小程序登錄方案


微信小程序登錄方案

登錄程序 app.js

  • 調用wx.login獲取code
  • 將code作為參數請求自己業務登錄接口獲取session_key
  • 存儲session_key
  • 如果有回調執行回調
App({
    wxLogin: function (callback) {
        wx.login({
          success: function (res) {
            console.log("weixin res", res);
    
            if (res.code) {
              //發起網絡請求
              wx.request({
                url: `${app.globalData.apiurl}wx_login`,
                data: {
                  code: res.code
                },
                success: function (data) {
                  console.log("請求登錄接口返回", data);
                  wx.setStorage({
                    key: "session_key",
                    data: data.data.data.session_key
                  });
                  if(callback && typeof(callback) === "function"){
                      callback(data.data.session_key);
                  }
                  
    
                },
                fail: function (res) {
                  wx.showToast({
                    title: '登錄失敗',
                  })
                }
              })
            } else {
              wx.showToast({
                title: '登錄失敗',
              })
            }
          }
        });
    }
})

業務數據請求 index.js

  • getStorage獲取session_key
  • 業務請求帶上session_key參數
  • 登錄狀態ok 返回業務數據
  • 登錄失效調用登錄函數並執行回調重新getData();
var app = getApp();
page({
   getData:function(){
        var that = this;
        wx.getStorage({
            key:"session_key",
            success:function(data){
                wx.request({
                    url: `${app.globalData.apiurl}?session_key=${data.data}`,
                    success:function(res){
                        if(res.success == "true"){
                            that.setData({data:res.data});
                        }else{
                            //登錄失效
                            if(res.code == 4100){
                                app.wxLogin(function(){
                                    that.getData();
                                })
                            }else{
                                wx.showToast({
                                    title: res.msg,
                                  })
                            }
                        }
                    }
                })
            }
        });
    } 
})


參考文檔 https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-login.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM