php 實現 二維碼 掃描登錄

本人簡單實現的示例,使用任意二維碼工具打開二維碼對應鏈接

http://www.pontefm.com/demo1/scan


原理介紹:

第一步:訪問登錄頁面,生成唯一key,例如MkhjDFL=,并且將此key 存入cache,對應值為-1 ,-1表示未登錄

,key有效期我設置的為5分鐘,過期就會重新生成二維碼圖片


第二步:生成二維碼,本人使用庫(https://github.com/2amigos/yii2-qrcode-helper),二維碼對應的鏈接 

               http://www.pontefm.com/demo1/qrcode?key=MkhjDFL=


第三步:登錄頁面,JS循環請求某個接口,本人接口 http://www.pontefm.com/demo1/dologin

第四步:使用任意app,打開二維碼對飲的鏈接。此處應該使用自己開發的App,并且App已經登錄,然后使用自己的App掃描二維碼,然后App請求二維碼對應的鏈接,這樣key 就可以 對應到 登錄人UID,此時修改cache中key的對應值為登錄人UID

第五步:由于第三步在重復請求接口,此接口如果檢查到cache中的key值為登錄人UID的時候,就會返回登錄人信息并且保存登錄態


PS:具體生成唯一key的算法,大家可以根據時間信息生成


示例截圖如下:

自己可以玩玩:http://www.pontefm.com/demo1/scan




<蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>