微信小程序登录方案

简介: 微信小程序登录方案登录程序 app.js调用wx.login获取code将code作为参数请求自己业务登录接口获取session_key存储session_key如果有回调执行回调App({ wxLogin: function (callback) { wx.

微信小程序登录方案

img_0ad40cdda71383d177cc96cd63369c3d.png

登录程序 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

目录
相关文章
|
3月前
|
小程序 前端开发 算法
|
4月前
|
移动开发 前端开发 Android开发
开发指南059-App实现微信扫描登录
App是用uniapp开发的,打包为apk,上传到安卓平板中使用
|
4月前
|
小程序 算法 前端开发
微信小程序---授权登录
微信小程序---授权登录
122 0
|
5月前
|
vr&ar 图形学 UED
电子沙盘VR模型大屏平板手机微信使用方案
数字孪生电子沙盘和VR模型被广泛应用在房地产等行业,为不同设备定制不同版本的模型是常见做法。然而,通过实时云渲染技术,可以将PC端的VR模型转化为网页版,使用户能够在平板或手机上流畅浏览详细信息,无需开发多个版本。这不仅提升了用户体验,还简化了模型提供商的工作流程,降低了成本。尤其在新楼盘发布时,可通过公众号或广告链接快速吸引潜在客户。成本主要取决于并发用户数及显卡性能要求,但该技术显著提高了跨设备访问的便利性。
70 1
|
6月前
|
小程序 安全 Java
|
6月前
|
存储 前端开发 安全
|
6月前
|
存储 小程序 JavaScript
|
6月前
|
开发工具 Android开发
|
6月前
|
小程序 JavaScript API
|
6月前
|
小程序 前端开发 安全