微信公众号扫码登陆

微信公众号扫码登录原理和实现

引言

想象一下,周五晚上,你打开电脑,打算刷一刷最新上线的剧集,突然弹出网站登录,哎呀,那个超级复杂的密码是什么来着?那一堆数字、字母和符号的大杂烩在我脑海中有好几个版本?能不能有一种简单的方式,不用密码就可以认真登录,这简直不要太棒?这时扫码登录出现了,它不仅方便而且更加安全。好比你向安保亮了一下你的 VIP 通行证,便放你通过。
微信作为国民级应用,微信扫码登录再常见不过了,它就像你的口袋里的万能钥匙,去哪儿都不怕。不过微信扫码登录也有多种方式,如扫码授权登录,扫码关注公众号登录等。这篇文章一起聊聊微信公众号二维码登录是怎么回事,它的工作流程是什么,它怎么保证你的身份安全。以及,如果你是一个开发者,如何在自己的网站上增加扫码登录。

公众号扫码登录优势

快捷方便

用户只需打开微信扫一扫,几秒钟内就能完成登录。这简化了传统的输入用户名和密码的繁琐过程,不过前提是你已经安装了必要的 APP。

增强安全性

扫码登录的身份认证在服务端完成,而且如微信公众号扫码登录这种方式,网站只需要拿到一个用户身份标识用于识别用户,不需要存储用户的额外信息。非常安全。

提升用户粘性

通过扫描二维码登录把用户引入公众号关注,在登录的同时还可以为公众号引流,提升用户粘性,同时公众号是一个非常方便的用户触达方式,未来新功能的发布可以及时送达用户。

公众号扫码登录实现原理

要想理清公众号扫码登录的实现原理,首先要知道在扫码登录过程中,有哪些参与方,它们之间的工作流程是怎么样的。这里的参与方有用户、浏览器、网站服务端、微信服务端四个参与方,总体的工作流程如下图,下面会进行详细介绍。

image

用户:用户是扫码登录的发起方,点击登录,然后扫描登录二维码。
浏览器:浏览器为用户展示二维码,然后不断的轮询扫码状态。
服务端:网站服务端需要向微信服务端获取携带 Ticket 信息的公众号二维码,在微信服务端回调时绑定用户身份信息。
微信服务端:用户扫码后,会请求到微信服务端,微信服务端会携带扫描的二维码的 Ticket 和用户身份标识回调网站服务端。
微信服务端回调网站服务端时,携带的用户身份信息其实只是一串无意义字符串,但是微信可以保证的是同一个微信用户扫码时携带的身份信息字符是相同的,以此识别用户。也因此公众号扫码登录用作身份认证非常安全。

开发准备工作

公众号

首先你要有用于扫码登录的微信公众号,微信公众平台提供了测试平台,可以直接生成测试公众号。
微信测试号:https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index

开发者文档

获取公众号二维码的过程需要参考微信公众号官方文档,下面几篇内容需要重点关注。

1.公众号接口接入指南

链接:https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html

2.获取 Access Token

Access Token 是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用 Access Token 。每次获取有效期目前为 2 个小时,需定时刷新,重复获取将导致上次获取的 Access Token 失效。
链接:https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html

3.生成带 Ticket 二维码

使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送。
链接:https://developers.weixin.qq.com/doc/offiaccount/Account_Management/Generating_a_Parametric_QR_Code.html

4.接收事件推送

在用户扫码后微信服务端会回调网站服务端,开发者需要按照指定消息格式对消息进行验证处理。如获取二维码的 Ticket。
链接:https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Receiving_event_pushes.html

5.回复文本消息

如果想要在用户扫码完成后自动响应如 “登录成功” 之类的提示语,需要参考此文档。
链接:https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Passive_user_reply_message.html

网站服务端

想要微信服务端成功回调,服务端必须外网可以访问,同时微信限制了端口只能是 80 或 443 ,因此只有两种选择 。
1.拥有自己的云服务器。
2.用内网穿透软件生成外网代理。

具体开发

配置微信公众号

可以在微信测试号平台上配置用于测试。
链接:https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index

1扫码情况
1.1扫码关注

image

1.2关注后扫码

image

1.3扫码后取关

image

2未扫码情况
2.1 关注

image

2.2 取关

image

posted @ 2026-07-11 11:34  liftsail  阅读(11)  评论(0)    收藏  举报