搜索
系统检测到您的用户名不符合规范:

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

浏览:5741 发布日期: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 写代码去吧
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
nicephper
积分:1181 等级:LV3
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /