微信小程序登录方案

简介: 微信小程序登录方案登录程序 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

目录
相关文章
|
1月前
|
小程序 API
微信小程序——授权登录
微信小程序——授权登录
21 0
|
2月前
|
新零售 供应链 小程序
复购见单模式小程序开发系统|细节方案
人们之所以喜欢在网上购物,最主要的是价格便宜,而且还能够在短时间内就拿到手
|
2月前
|
前端开发 小程序 JavaScript
电商小程序04实现登录逻辑
电商小程序04实现登录逻辑
|
4月前
|
存储 JSON JavaScript
前后端分离项目知识汇总(微信扫码登录,手机验证码登录,JWT)-1
前后端分离项目知识汇总(微信扫码登录,手机验证码登录,JWT)
69 0
|
1月前
如何在PC端登录多个微信号?怎么操作免费多开电脑版微信?
如何在PC端登录多个微信号?怎么操作免费多开电脑版微信?
|
2月前
|
新零售 小程序 搜索推荐
排队免单模式小程序商城系统开发方案
新零售不再将线上和线下视为两个独立的销售渠道,而是将其整合为一个完整的销售生态系统
|
2月前
|
新零售 人工智能 自然语言处理
未来生物小程序商城系统开发模式|方案需求
新零售系统商城的成功离不开先进技术的支撑。
|
2月前
|
小程序 前端开发 数据安全/隐私保护
电商小程序03登录页面开发
电商小程序03登录页面开发
|
3月前
|
小程序 JavaScript
微信小程序授权登录?
微信小程序授权登录?
|
4月前
|
JSON 前端开发 安全
前后端分离项目知识汇总(微信扫码登录,手机验证码登录,JWT)-2
前后端分离项目知识汇总(微信扫码登录,手机验证码登录,JWT)
58 0