只用测试号或认证服务号,实现电脑PC浏览器扫码微信扫码二维码登陆的思路,无需开放平台

本文提出一种仅使用微信服务号进行认证的思路,无需依赖开放平台。介绍了一种利用内置浏览器环境静默授权的方法,并通过定制state参数来区分不同客户端,实现微信端与Web端的统一登录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里有个思路只用认证服务号,不需要开放平台。
至于用unioid还是openid,个人认为只要是便于方便、准确认证客户身份即可。

只用认证服务号认证思路如下:

已知条件:
1、内置浏览器环境可以获取openid,(步骤不详述,自查)。
2、内置浏览器环境获取openid时可以静默授权(无需用户端点击确认)。
3、授权第一步客户打开”https:/ /open.weixin.qq.com/connect/oauth2/authorize“的时候需要带一个定制参数state,这个参数大多被忽视(官文说是用来验证真伪),个人觉得利用好这个参数就可以实现免开放平台。
4、做应用开发肯定会有web服务器和数据库权限。

解决方案(步骤流程):
1、客户端打开浏览器(PC)时,session是空的,服务器生成网址(如:http:/ /abc.abc.com/login.xxp)带参(如:a1b2c3)二维码发给客户端,参数用于区分哪个客户端,记录在session里。
2、客户微信扫码跳转到登陆页面,服务端让客户端重定向(Redirect)到公众平台认证网址(https:/ /open.weixin.qq.com/connect/oauth2/authorize),附带state为a1b2c3。
3、通过静默授权后,取得Request(“state”),取得openid(步骤机械,详情自查),记录回传的state和openid到数据库里(可以新建一个表专门干这个,也可在原有user表里加字段),JS控制微信端网页关闭或友好提示一下已在客户端登陆。
4、此时,客户端浏览器(PC)利用ajax短轮询机制询问服务器是否取得session(“state”)是否取得openid?取得以后,你懂的(记录对应用户到session、刷新或转到应用主页面或指定页面),完成登陆。
5、如何取得微信用户信息头像?在使用微信端授权时取得,记录在数据库里,web端都是调用服务端下发的数据库内容。

议:
整个流程未使用开放平台,因为客户端未调用开放平台,认证是微信端打开公众平台认证后,通过服务端后台转发认证结果。

后记:
本人正开发一个项目,需要微信、web都能登陆,也纠结申请开发平台问题,以上思路正在实践中,实现后再给结论。待续。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值