<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                在WeiPHP4.0中,可以在后臺開啟掃碼登錄功能,默認是關閉的 ![](https://box.kancloud.cn/86313ea34a7dfa76e3aea85f21d109dc_696x400.png) 未開啟掃碼登錄前的效果: ![](https://box.kancloud.cn/9edb27ba1c5d84f1d8dde12c710b83b8_437x441.png) 開啟掃碼登錄前的效果: ![](https://box.kancloud.cn/769d9f67619fac624f26aca35fde7a1b_421x493.png) 除了本系統的運營人員可以掃碼登錄外,還支持子系統也能使用掃碼登錄功能。這比較適合于有一個主站,還有多個子站的客戶。比如我們WeiPHP官網,體驗環境相當于主站,社區論壇,商城等其它產品的體驗站點相當于子站。這些站點之間都可以通過掃碼登錄的方式為用戶提供統一登錄方式,**不再需要用戶重復注冊和登錄**。 子站要使用掃碼登錄功能,需要使用API接口與主站進行交互,以獲取二維碼和用戶登錄信息,如下圖: ![](https://box.kancloud.cn/9efda856d74fd49e6becd9dc1c7d8433_968x700.jpg) 子站集成掃碼登錄的開發流程 ### 生成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 ) ); } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看