当前位置:  首页  >  PHP教程  >  PHP 应用  >  知识库

微信开发微信扫描登陆-php教程

网站中集成微信扫描登陆直接使用微信账号登陆减去注册登陆麻烦只需要微信扫描二维码登陆,有哪位小伙伴遇到这样类似的需要类似的场景吗??给一个网站的例子链接(非广告推广..)微信扫码登陆
网站中集成微信扫描登陆 直接使用微信账号登陆 减去注册 登陆麻烦只需要微信扫描二维码登陆,有哪位小伙伴 遇到这样类似的需要 类似的场景吗??

给一个网站的例子链接(非广告推广..)微信扫码登陆

回复内容:

网站中集成微信扫描登陆 直接使用微信账号登陆 减去注册 登陆麻烦只需要微信扫描二维码登陆,有哪位小伙伴 遇到这样类似的需要 类似的场景吗??

给一个网站的例子链接(非广告推广..)微信扫码登陆

我已经做了一个简单的封装的api。通过微信的网页授权获取用户信息,来实现登录、验证、注册等功能。但是这个网页授权获取用户基本信息,需要认证过的服务号才能具备此功能,手中刚好有一个,就用来做了一个API,可以供大家一起使用。

这个API的具体逻辑就是,网站在登陆页面上显示内容为A链接的二维码,引导用户使用微信扫描该二维码。A链接的格式应当为:https://wenfan.cn/wechat/api.php?token=xxxxxx&key=xxxxxx。这个链接包括 token和tkey两个变量,前者用于识别用户是否已经扫描该页面,后者用于双向验证交换信息;

用户如果使用其他工具打开这个链接,是不会有任何反应的,只有在微信中扫描才会有所反应;

用户在微信中扫描以后,首先会验证APIKEY是否存在,如果存在则获取callback回调地址。然后会继续向微信平台请求得到用户的唯一openid(程序会对openid进行一次加密,防止有人通过其他手段获得微信用户原始openid后进行攻击,确保得到的openid的绝对唯一性),得到openid以后,程序将token和openid以及APIKEY、secret四个变量通过POST方式传递给callback回调地址;

callback回调地址收到上述参数后,对APIKEY和secret进行验证(防止有人直接向callback地址进行POST),然后将token和openid写入数据库;

checkstatus.php?token=xxxxxx 是用来判断该token是否已经和openid组对写入了数据库中,如果数据库中存在了这个token,并且配对有一个openid,则说明用户已经扫码;

前端index.php通过轮询checkstatus.php,来获取数据库中是否存在这个token的状态,每隔3秒轮询一次,如果发现该token已存在于数据库中,则开始执行跳转(或者其他动作,比如写入session等等),至此,整个流程已经完成。

具体部署方法如下:

1、在本站申请一个API KEY:Wechat Scan Login API,请尽量勿使用QQ邮箱注册,可能收不到验证链接;
2、点击邮件验证链接以后,登陆后台可以得到一个API KEY;
3、下载DEMO.ZIP [https://wenfan.cn/wechat/demo.zip];
4、修改config.php里面的数据库连接信息;
5、在数据库里建立一个名称为“wechat”的表,必须至少包含两个字段:token 和 user。前者用来记录临时token,后者用来记录微信用户唯一id;
6、修改callback.php和index.php里对应的API KEY值以及secret值,改成第一步自己得到的API KEY和secret;
7、将文件上传至服务器,在第一步的API KEY信息后台,将callback.php的地址填入。
[可选]:根据自己的需求,优化二维码样式,及设定扫描成功后的动作代码。获取到的微信用户id为唯一id,所以该扫描登陆具备较强的唯一性,可以用来注册或者登陆,或者人机验证(代替验证码)。

[点击查看LIVE DEMO]

好吧 又是自问自答 发布问题后 问了一下 在腾讯工作的朋友.....然后得到了 如下链接

微信文档 无力吐槽...

实例

这个实现现在很多网站都加了……

如果有一个认证了的服务号可以自己做的。

生成带参数二维码。

1、在微信开放平台注册(open.weixin.qq.com)
2、申请开发者认证
3、认证后,即可使用微信登录功能,支持app web

去微信开入平台注册申请开发者,完了添加应用,添加完之后设置 callback ,扫码之后会跳转到你的 callback (并带上 code),通过 code 去换取 openid 和 accessToken。

在本站申请一个API KEY:Wechat Scan Login API
这个 KEY 怎么得到?

吐了个 "CAO" !
扫码关注 PHP1 官方微信号
PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有