微信小程序python flask后端_Flask与微信小程序登录(后端)

本文详细介绍了如何使用Python的Flask框架与微信小程序配合,实现用户登录功能。流程包括小程序端调用wx.login和wx.getUserInfo获取code、encryptedData等信息,后端通过code换取open_id和session_key,解密用户信息,生成JWT token并返回给小程序,最终实现用户登录状态的管理。
摘要由CSDN通过智能技术生成

开发微信小程序时,接入小程序的授权登录可以快速实现用户注册登录的步骤,是快速建立用户体系的重要一步。这篇文章将介绍 python + flask + 微信小程序实现用户快速注册登录方案(本文主要进行后端逻辑的梳理,小程序端逻辑只写了必要的部分,如有需要,请点击连接阅读官方开发文档)

官方给出的微信小程序登录时序图如下:

1

这个流程分为两大部分:

小程序使用 wx.login() API 获取 code,并由开发者后端服务器换取open_id 和 session_key,小程序使用 wx.getUserInfo() API 获取 encryptedData 和 iv,然后将这三个信息发送给开发者服务器服务器。

开发者服务器获取到 code、encryptedData和 iv 后,将 session_key 利用 encryptedData 和 iv 解密,在服务端获取用户信息。根据用户信息返回 jwt 数据,完成登录状态。

小程序登录流程梳理

1 小程序端调用wx.login

小程序通过

返回值

属性

类型

说明

code

String

用户允许登录后,回调内容会带上 code(有效期五分钟)

2 判断用户是否授权

小程序端可以通过 wx.getSetting 接口获取用户当前的授权状态

如果用户已经授权,则直接发起登录请求

如果用户没有授权,则调用 wx.authorize 或 引导用户关注公众号 来获得授权。

如果用户不予授权,则登录失败。

3 小程序端访问 wx.getUserInfo

小程序端调用

接口success 时返回参数如下:

参数名

类型

说明

userInfo

OBJECT

用户信息对象,不包含 openid 等敏感信息。

rawData

String

不包括敏感信息的原始数据字符串,用于计算签名。

signature

String

使用 sha1( rawData + sessionkey ) 得到字符串,用于校验用户信息

encryptedData

String

包括敏感数据在内的完整用户信息的加密数据,详细见加密数据解密算法

iv

String

加密算法的初始向量,详细见加密数据解密算法

将这些第一步获得的js_code和这里获得的 rawData, signature, encryptedData, iv一起打包传入开发者后端。

4 开发者服务器访问co

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值