您的位置:首页 > 移动开发 > Android开发

Android 客户端扫描网页端二维码实现登录

2017-02-25 12:41 344 查看
->Android +PHP+Swoole+Websocket 客户端扫描网页端二维码实现登录

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 写代码去吧
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐