在WeiPHP4.0中,可以在后臺開啟掃碼登錄功能,默認是關閉的

未開啟掃碼登錄前的效果:

開啟掃碼登錄前的效果:

除了本系統的運營人員可以掃碼登錄外,還支持子系統也能使用掃碼登錄功能。這比較適合于有一個主站,還有多個子站的客戶。比如我們WeiPHP官網,體驗環境相當于主站,社區論壇,商城等其它產品的體驗站點相當于子站。這些站點之間都可以通過掃碼登錄的方式為用戶提供統一登錄方式,**不再需要用戶重復注冊和登錄**。
子站要使用掃碼登錄功能,需要使用API接口與主站進行交互,以獲取二維碼和用戶登錄信息,如下圖:

子站集成掃碼登錄的開發流程
### 生成LoginKey,并換取二維碼
~~~
// 生成LoginKey,并放到Cookie中,防止用戶重復刷新獲取二維碼
$key = cookie ( 'LoginKey' );
if (empty ( $key )) {
$key = uniqid ();
cookie ( 'LoginKey', $key );
}
$this->assign ( 'LoginKey', $key );
$main_url = 'http://demo.weiphp.cn/'; // 主站的網址,開發者要替換成自己的網站
// 獲取二維碼的地址 TODO 待加上access_token
$qr_code = get_data ( $main_url . 'index.php?s=/Home/ScanLoginApi/getQrCode/key/' . $key );
~~~
### 不斷詢問用戶掃碼進度
模板HTML的關鍵代碼:
~~~
<!--顯示二維碼給用戶掃描-->
<img src="{$qrcode}" width=250 height=250>
<script type="text/javascript">
$(function(){
//每隔3秒詢問下用戶是否已掃碼,如已掃碼,自動跳轉到指定頁面
setInterval(function(){
$.post("{:U('checkLogin')}",{},function(res){
if(res.status==1){
window.location.href = res.url;
}
});
},3000)});
</script>
~~~
### 完成自動注冊和自動登錄
后端PHP處理的關鍵代碼:
~~~
function checkLogin() {
$main_url = 'http://demo.weiphp.cn/'; // 主站的網址,開發者要替換成自己的網站
$key = cookie ( 'LoginKey' );
// 通過LoginKey獲取用戶掃碼進度
$user = get_data ( $main_url . 'index.php?s=/Home/ScanLoginApi/checkLogin/key/' . $key );
if (empty ( $user )) { // 用戶未掃碼,直接返回
exit ( '0' );
}
// 已掃碼,獲取用戶信息
$user = json_decode ( $user, true );
unset ( $user ['uid'] );
// 獲取用戶ID,如果用戶未注冊,會自動完成注冊
$user ['uid'] = D ( 'Common/Follow' )->init_follow ( $user ['openid'], $user ['token'], false, $user );
// 自動完成登錄
D ( 'Common/User' )->autoLogin ( $user );
$return ['status'] = 1;
$return ['url'] = cookie ( '__forward__' );
if (! $return ['url']) {
$return ['url'] = U ( 'Home/Apps/lists' );
} else {
cookie ( '__forward__', null );
}
// 返回跳轉地址信息
exit ( json ( $return ) );
}
~~~
- 序言
- 基礎
- 安裝WeiPHP
- 目錄結構
- 錯誤碼分配
- 錯誤碼問答系統
- 入答疑群方法
- 快速入門
- 談談開發目標
- 前期準備
- 增加應用
- 編寫微信響應代碼
- 激動的時刻_體驗測試
- 用戶
- 用戶體系
- 超級管理員
- 運營人員
- 粉絲
- 掃碼登錄
- 公眾號
- 手工綁定
- 一鍵綁定
- 自定義菜單
- 微信支付
- 微信平臺支付配置
- 公眾號支付
- 原生掃碼支付
- 異步接收支付結果
- 現金紅包
- 發放普通紅包
- 查詢紅包記錄
- 紅包記錄數據結構
- 現金支付
- 下發支付
- 查詢支付記錄
- 現金支付數據結構
- 刷卡支付
- 提交刷卡支付
- 查詢刷卡支付記錄
- 撤銷刷卡支付
- 支付記錄數據結構
- API服務
- oauth2.0安全驗證
- 后臺配置API
- 小程序
- HTTPS部署
- 騰訊云服務器部署
- 阿里云HTTPS部署
- 自發證書HTTPS部署
- openssl升級到1.02
- 自動登錄注冊
- 短信驗證碼
- 網絡請求
- 上傳圖片
- 生成事件二維碼
- 小程序支付
- 小程序微信支付配置
- 小程序調用支付功能
- 模板消息
- 消息模板配置
- 支付后發模板消息
- 提交表單后發模板消息
- 卡券(會員卡、優惠券)
- 客服
- 與公眾號互通
- 微信開放平臺
- 一鍵綁定公眾號
- 積分等級
- 積分規則
- 積分操作
- 積分等級數據結構
- 日志
- 后臺日志
- 運營日志
- 接口日志
- 調試日志
- 錯誤日志
- 日志數據結構
- 應用管理
- 應用管理列表
- 新增應用
- 應用開發
- 安裝應用
- 模型
- 模型介紹
- 模型管理
- 新增加模型
- 新增加字段
- 列表定義
- 通用視圖模板
- 定時任務
- 定時任務介紹
- 配置定時任務
- 開啟定時器
- 系統自觸發
- window定時器
- Linux定時器
- Mac定時器
- 定時任務數據結構
- 商業應用
- 分銷商城
- 教育培訓
- 搖紅包
- 夢云社區
- 婚慶派
- 部署
- Linux服務器一鍵安裝包部署
- Window集成包部署