php如何实现扫一扫功能
发表于:2025-11-20 作者:千家信息网编辑
千家信息网最后更新 2025年11月20日,这篇文章主要介绍php如何实现扫一扫功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php实现扫一扫功能的方法:1、生成二维码,生成一个唯一标识uuid,并使用redis保存
千家信息网最后更新 2025年11月20日php如何实现扫一扫功能
这篇文章主要介绍php如何实现扫一扫功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
php实现扫一扫功能的方法:1、生成二维码,生成一个唯一标识uuid,并使用redis保存临时信息;2、通过一个长连接维持用户请求和服务器之间的通信;3、使用手机扫描二维码获取唯一标识uuid,并判断该标识是否有效。
本文操作环境:Windows7系统,PHP7.4版,Dell G3电脑。
PHP扫码登录
扫码登录具体实现方式

扫码登录具体实现流程:
1、生成二维码,生成一个唯一标识uuid,该标识贯穿整个流程,使用redis保存临时信息(uuid作为key,对应值设置为-1,-1表示未扫描,该标识的有效期这里设置为三分钟,过期会重新生成一个二维码)。
public function index(){ $uuid = self::createRandomStr('6'); $url = $this->code($uuid); //二维码链接地址 Redis::sAdd($uuid,'-1'); Redis::command('Expire',[$uuid,180]);//设置过期时间 return view('home.send.index',['url'=>$url,'uuid'=>$uuid]); } /** * 生成二维码url * @param $text */ public function code($uuid){ $host='http://'.$_SERVER["HTTP_HOST"].'/api/send'; $url='http://qr.liantu.com/api.php?text='.$host.'?uuid='.$uuid; return $url; }2、登录页面通过一个长连接维持用户请求和服务器之间的通信,每隔一段时间监测redis中 uuid对应的值是否发生改变(-1未扫描 , 0表示用户已扫描该二维码 ps:再次扫描该二维码时提示已失效, 其余的值表示用户的主键id)
/** * 验证uuid是否过期 * @param Request $req * @return string|void */ public function confirm(Request $req){ $uuid = $req->uuid; $result = implode('',Redis::sort($uuid)); if($result == ''){//当uuid不存在时表示该标识已失效,重新生成二维码 return '该链接地址已过期'; } if($result == '-1'){ return ''; }elseif($result == '0'){ return '用户已扫描'; }else{ return '用户已确认登录';//获取用户的user_id 直接登录。 } }3、使用手机扫描二维码(ps:此处应该使用自己开发的App,并且App已经登录)获取唯一标识uuid,判断该标识是否有效 (该标识未失效的情况下修改uuid对应的值为0,用来表示该二维码已被扫描)。 public function index(Request $req){ $uuid = $req->uuid; $info = Code::getOne(['uuid'=>$uuid]); $result = implode('',Redis::sort($uuid)); if(!$result){ return $this->ajaxMsgError('该二维码已失效'); } Redis::sRem($code,'-1'); Redis::sadd($code ,0); return $this->ajaxMsgOk('扫描成功,请确认登录'); }4、APP确认登录,把当前uuid对应的val值修改为当前登录用户的主键idpublic function dologin(Request $req){ $user_id = $req->user_id; $uuid= $req->uuid; $user = User::getOne(['id'=>$user_id]); if($user){ if($user->status != 1){ return $this->ajaxMsgError('该用户已被禁用'); } Redis::sadd($uuid,$user_id); return $this->ajaxSuccess('登录成功'); }else{ //用户不存在 return $this->ajaxError('该用户不存在'); } }5、重复第二步,此接口如果检查到redis中的key值为登录人UID的时候,就会返回登录人信息并且保存登录态。以上是"php如何实现扫一扫功能"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
登录
二维
二维码
用户
标识
生成
功能
有效
信息
成功
之间
内容
地址
手机
时间
服务器
流程
篇文章
链接
服务
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
sql文件数据库名称替换
公安坚持网络安全
亚马逊云申请服务器网址
山景科技网络技术有限公司
服务器root权限
网络技术大赛a卷
网络技术专业没买电脑
202网络安全宣传周主题
服务器地址
服务器u用啥内存
课时表设计数据库
简单好用的数据库
长沙苹果软件开发价格
gsp数据库对比
宽带服务器维护亮红灯什么意思
平湖上门回收服务器
mt4更改服务器
数据库实验安全性定义与检查
业务软件开发是干什么的
邮件数据库
天龙八部什么时候开怀旧服务器
星际大陆服务器什么时候上市
电影服务器最大连接数
嘉定区网络技术服务咨询公司
内网dns服务器软件
网络安全工程师定位
向数组中插数据库
服务器小程序注册
开家网络安全信息技术公司
bool在数据库