从零开始搭建物联网平台(10):微信登录和用户绑定

本文介绍如何在物联网平台上实现微信小程序的登录和用户绑定。由于小程序不支持Cookie,采用JWT进行状态保持。文章详细阐述了整体流程、小程序端及后端的实现细节,包括在页面加载时检测JWT,用户输入信息的MD5加密,以及后端使用PyJWT处理JWT和OpenID的获取。
摘要由CSDN通过智能技术生成

微信小程序不支持Cookie的,所以为了保存用户登录状态就必须换一个方式实现,这里采用jwt的方式,关于jwt简单来说就是第一次登录验证成功后对想要保存的信息进行加密,然后将加密过后的内容返回给前端,前端每次请求的时候都携带上这个token,后端拿到token后对其解密就能获取之前保存的信息了。

整体流程:

这里先看一下小程序官方给的登录流程,这只是最基础的流程,根据设计需要我们还需要添加自己的逻辑进去

下面是具体的流程图,接下来会根据这个流程图具体看看小程序端和后端应该怎么实现。

小程序的具体实现

以index页面为起始页面,当页面进行加载的时候会调用onload函数,所以可以在onload函数中检测storage中是否有jwt

onLoad: function() { 
    // 获取本地的jwt,如果有则跳转到home页面,否则重新获取jwt
    wx.getStorage({
      key: 'jwt',
      success: function(res) {
        wx.switchTab({
          url: '../home/home'
        })
      },
    })
  },

如果没有找到jwt,这是会调用登录函数从后端获取jwt

//用户登录
let login = function(code) {
  wx.request({
    url: login_url,
    method: 'post',
    data: {
      &
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值