快速开发微信小程序之一登录认证

news/2024/7/20 1:32:57 标签: 微信小程序, 小程序

一、背景

记得11、12年的时候大家一窝蜂的开始做客户端Android、IOS开发,我是14年才开始做Andoird开发,干了两年多,然后18年左右小程序>微信小程序火了,我也做了两个小程序,一个是将原有牛奶公众号的功能迁移到小程序,用户体验得到极大的提升,另外一个是给XX做的一个简单的卖蜂蜜的小程序,当时投入3个人,两周左右搞定。

小程序>微信小程序开发其实还是比较简单的,小程序端代码和Vue整休架构差不多,比较复杂的就是登录和支付这两块,因为这两块涉及到三方交互(小程序端、开发者服务器、微信服务端),今天讲一下登录这块是怎么一个交互的(这个18年时候做的事情,现在微信有些接口可能有所调整,但变化不会太大)

二、一些名词概念

1、openid

普通用户标记,对当前开发者账号是唯一的,一个openid对应一个具体的应用,不同的公众号不同的小程序会给同一个微信用户分配不同的openid。

2、unionid

微信用户统一标记,一个开放平台账号下同一个微信用户unionid是唯一的,需要在微信开放平台绑定公众号/小程序

案例说明:牛奶应用开始是开发公众号-服务号,这个时候用户注册到我们表里会有一个openid_1,然后小程序火起来了,我们决定开发小程序,但小程序会重新给同一个用户分配一个openid_2,这就不好了,你不能让一个用户在公众号上可以看到他自己的订单,然后跑到小程序后找不到订单是吧,咋整呢,微信还有一个开放平台,你再申请一个邮箱去注册一下开放平台,然后把公众号和小程序都在里边绑定一下,这样他就会给你分配一个统一的unionid。

3、session_key

用于用户解密微信用户数据,接口返回敏感数据是密文的,如unionId,手机号等,需要用session_key做为密钥去解密。

三、微信提供和登录相关几个主要接口

小程序端调用

1、wx.login()

获取临时登录凭证CODE,有效时间为5分钟,使用后就立即失效。

2、wx.authorize()

发起用户授权请求,如要获取用户信息,地理位置,保存相册、摄像头等需要调用该接口得到用户的授权。

3、wx.getUserInfo()

得到加密码的用户数据,返回encryptedData数据,加密向量值IV,将数据传给服务端,服务端完成解密用户信息注册等,调用该接口前必须先调用上面两个方法。

开发者服务器调用

1、jscode2session:通过CODE获取openid、unionid、sessiooo_key。

四、调用交互图


http://www.niftyadmin.cn/n/5063252.html

相关文章

以太网协议介绍(ARP、UDP、ICMP、IP)

以太网协议介绍 一、ARP协议 请求: 应答: ARP协议: 0x0001 0x0800 6 4硬件类型:2个字节,arp协议不仅能在以太网上运行还能在其他类型的硬件上运行。以太网用1来表示; 协议类型:两字节。指的是a…

幽默逻辑树

基本逻辑树 以下是一个幽默的逻辑树结构示例: 开始 ├─ 拿出一杯咖啡 ├─ 喝一口咖啡 │ └─ 是否烫嘴? │ ├─ 是 │ │ ├─ 吐出咖啡 │ │ └─ 等待凉一点再喝 │ └─ 否 │ └─ 继续喝咖啡 ├─ …

C++学习之引用

定义 引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字,一旦把引用初始化为某个变量,就可以使用该引用名称来指向变量。 创建引用 变量名相当于变量附属在内存位置中的标签,可以把引用当成是变量附属在…

如何快速学会制作拼团小程序?简单四步走,轻松掌握

在当今的互联网时代,拼团活动已经成为一种非常有效的营销手段。但是,对于很多新手来说,如何制作一个成功的拼团链接可能是一项挑战。本文将为你提供一个详细的步骤解析,帮助你快速掌握制作拼团链接的方法。 首先,你需要…

C++面试题准备

文章目录 一、线程1.什么是进程,线程,彼此有什么区别?2.多进程、多线程的优缺点3.什么时候用进程,什么时候用线程4.多进程、多线程同步(通讯)的方法5.父进程、子进程的关系以及区别6.什么是进程上下文、中断上下文7.一…

Android Gilde获取网络图片显示保存路径并转化为bitmap

为某个按钮或者图片添加点击事件,然后:strImg为图片url地址 ,loadDialog只是个提示信息,可以不要这个参数。使用Glide的onResourceReady方法获取到bitmap对象: LoadDialog loadDialognew LoadDialog(); loadDialog.initShow(cont…

Server2安装虚拟机

PC1连接server2(iBMC KunTai R522-3服务器)(1)http://192.168.2.10 用户名:Admin 密码:Admin@123 (2)安装rocky-arm64 CLI系统(语言为英文) server2:# systemctl set-hostname server2 #systemctl stop firewalld #systemctl disable firewalld #setenfo…

如何用画图将另一个图片中的成分复制粘贴?

一、画图是什么? 画图是Windows自带的一个附件,可于菜单中的Windows附件文件夹中找到(自带的为2D画图,有需要的可以下载3D画图),可以用来编辑或查看图片,也可以用来绘制图片,并将图…