首先梳理一下要准备的PHP接口,一共有3个:
-
1.让前端页获取唯一的QRUUID(唯一字符串就可以)生成一个二维码用的接口。
-
2.APP端扫描到QRUUID后去请求的接口,功能是把用户和这个QRUUID绑定(可以传User_id或者token什么的,具体看需求)。
-
3.前端在获取到第一个的接口返回的QRUUID后去轮询请求的接口,功能是查询这个QRUUID是不是被APP端扫描并绑定。
然后是HTML页的主要实现:
最后是APP端(以iOS为例)的实现:
-
使用AVFoundation扫描二维码获得信息,然后请求PHP接口将用户数据和QRUUID绑定。
代码
DROP TABLE IF EXISTS `qrcodelogin`;
CREATE TABLE `qrcodelogin` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`qruuid` varchar(15) NOT NULL DEFAULT '',
`user_id` int(11) DEFAULT NULL,
`user_token` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
SET FOREIGN_KEY_CHECKS = 1;
<?php
$db_host = '192.168.1.103';
$db_name = 'test';
$db_user = 'root';
$db_pwd = 'a123456';
1
2
3
<?php
require('config.php');
$mysqli = new mysqli($db_host, $db_user, $db_pwd, $db_name);
if (mysqli_connect_error())
echo mysqli_connect_error();
$mysqli->set_charset("utf8");
$qruuid = substr(md5(uniqid(mt_rand(), true)), 0, 15);
$sql = "insert into qrcodelogin (qruuid) values ('". $qruuid .