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


主要涉及技术和类库

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 写代码去吧

版权声明:

1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。
2、网站不提供资料下载,如需下载请到原作者页面进行下载。
3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考学习用!
4、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。