PHP+Swoole+Websocket扫描网页端二维码实现登录

浏览:5619 发布日期:2017/02/25 分类:功能实现 关键字: php swoole websocket redis
Android 客户端扫描网页端二维码实现登录
->Android 客户端扫描网页端二维码实现登录

github https://github.com/simplephp/QRcode-scanner-login

主要涉及技术和类库
php phpqrcode 类库 PHP生成二维码
php swoole 扩展
php redis 扩展
js websocket 客户端
android zxing 类库扫描二维码
android okhttp 网络类库
mysql 储存数据 注意:最终实现为 DEMO 版本,切勿拿到生产环境上使用。
文件列表介绍
QRScanner.apk android扫描二维码客户端(小米2S上测试了,哈哈其他不知道兼容不,毕竟不是写android的)
api.php android 请求接口处理,并且转发 UDP 到 api_server.php
api_server.php 服务端处理
qrlogin.sql 数据库配置文件
基础配置 >
1.数据库连接配置 ./db/Pdomysql.clss

```
private static $config = array(
'dbtype' => 'mysql',
'dbhost' => '127.0.0.1',
'dbuser' => 'root',
'dbpass' => '123456',
'databases' => 'demo',
'dbport' => '3306',
'charset' => 'UTF8',
'pconnect' => false,
'debug' => true,
);
数据库根据自己的环境配置,这垃圾代码,大家将就吧
```
2.文件权限 ./temp 读写权限(linux)

3.修改index.php 的token 地址配置

```
$tokenURL = 'http://your_ip/qrlogin/api.php?token='.$uuid;
```
4.配置 api_server.php swoole_websocket_server、Redis、UDP监听地址和端口

```
$serv = new swoole_websocket_server("0.0.0.0", 9502);
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

//这里监听了一个UDP端口用来 监听客服端 token 请求的
$serv->addlistener('0.0.0.0', 9503, SWOOLE_SOCK_UDP);
```
根据自己的实际环境做修改
基本实现原理(没有啥技术含量)
浏览网页(index.php),生成 Token(UUID也可以这么说),保存到 MySql 数据库或者缓存也可以,有Redis 嘛,websocket 连接到 swoole,等待推送信息

客户端扫描二维码里面的Token,Android 客户端(用户登录状态)携带用户名和Token或者其他标识 请求api.php做校验更新数据库,api.php 发送 UDP 请求到 api_server.php

api_server.php 接受到 UDP 请求处理后将登录信息推送到网页客户端

写到最后 >
实现原理简单,有安全问题,实现的一种思路,不在个位看官面前班门弄斧,学海无涯,so 写代码去吧
评论( 相关
后面还有条评论,点击查看>>