免费国产欧美国日产_少妇AV一区二区三区无码_蜜桃精品av无码喷奶水小说_jk18禁网站视频_精产国品一二三级产品区别_被夫の上司に犯波多野结衣_78m成人手机免费看_最爽最刺激18禁视频_偷偷色噜狠狠狠狠的777米奇

易優(yōu)GEO 重磅上線 ~ 一站式GEO優(yōu)化工具,讓豆包、文心一言、DeepSeek 在回答中主動推薦你的品牌,搶占AI流量入口!  點擊查看

小程序模板網(wǎng)

使用codeigniter寫小程序 一 搭建微信登錄框架

發(fā)布時間:2018-02-10 11:05 所屬欄目:小程序開發(fā)教程

使用library 中的 微信登錄 校驗工具 (工具源碼作者 小黑黑 ) 原本的腳手架是基于tp的小程序登錄,把他稍微改進(jìn)了用到CI中。 官方手冊寫的流程太復(fù)雜了,建議精簡下,我看了一天的文檔,其實東西不算很難,只是簡單的東西復(fù)雜化了。 微信登錄的流程大概是 小程序->業(yè)務(wù)服務(wù)器->傳遞最后的session3rd到微信服務(wù)器 同時把 session3rd json給 小程序,保存在客戶端就可以。 用戶進(jìn)入小程序的時候,先 post session3rd給 業(yè)務(wù)服務(wù)器,查詢緩存中是否還存在,存在就返回session3rd的內(nèi)容,否則重新登錄。

必要設(shè)置:CI memcached 參考 memcached配置

假設(shè),你的網(wǎng)址是 https://www.abc.com/api 首先,把wafer目錄放入 api中 其次,把wafer-session-server-master 目錄放到 api目錄中 注意,是整個目錄放進(jìn)去

linux主機的話,需要 在 系統(tǒng)/etc/新建 qcloud目錄。 新建個文本文件粘貼如下代碼:

{ "serverHost": "www.xx.com", "authServerUrl": "http://www.xx.com/itjaye/wafer-session-server/", "tunnelServerUrl": "https://ws.qcloud.com", "tunnelSignatureKey": "xxxxxx", "networkTimeout": 30000 } serverHost 你的業(yè)務(wù)服務(wù)器的域名,上面部署wafer SDK代碼 authServerUrl 會話服務(wù)地址,登陸授權(quán)會用到。上面部署會話服務(wù)的代碼 tunnelServerUrl 這個是信道服務(wù)器地址,不需要部署,直接使用騰訊提供的信道服務(wù)器地址https://ws.qcloud.com tunnelSignatureKey 修改成自己的簽名秘鑰,隨便自己定義一個就行 將文件保存為sdk.config并上傳到/etc/qcloud/sdk.config (需要在/etc/下面自己創(chuàng)建下qcloud這個目錄)

具體請參考:自行部署小程序開發(fā)套件

進(jìn)入CI wafer目錄中,composer install,安裝依賴文件。 使用框架: 微信官方demo wafer library庫 源碼作者小小黑 需要刪除命名空間, WXLoginHelper 文件里面需要導(dǎo)入 require_once 其他的文件進(jìn)來。

微信登錄例子


        
Class UserLogin extends CI_Controller
        {
            function __construct()
            {
                parent::__construct();
                  $this->load->library(array('WXLoginHelper'));
                  $this->load->model('General');
                  $this->load->driver('cache');

            }

            function login()
            {
                     /* code, rawData, signature, encryptData iv */
                     $postData = $this->input->post(array('code','rawData','signature','encryptedData','iv'));
                     $code = $postData['code'];
                     $rawData = $postData['rawData'];
                     $signature = $postData['signature'];
                     $encryptedData = $postData['encryptedData'];
                     $iv = $postData['iv'];
                     $test = new WXLoginHelper;
                     $data = $test->checkLogin($code,$rawData,$signature,$encryptedData,$iv);
                     $session = $this->cache->memcached->save($data['session3rd'], $data['openId'] . $data['sessionKey']);
                     //檢查user表是否存在改用戶,如果存在,則則返回session,如果不存在,寫入表再發(fā)回session
                     $find = $this->General->query('user',array('openid'=>$data['openId']));
                     $find = $find ==null ? 0:$find[0];
                     if($find == 0)
                     {
                         $user_id = $this->General->insert('user',array('openId'=>$data['openId'],'nickName'=>$data['nickName'],
                                                 'gender'=>$data['gender'],'city'=>$data['city'],'language'=>$data['language'],'province'=>$data['province'],'country'=>$data['country'],'avatarUrl'=>$data['avatarUrl']));

                     } else{

                         $user_id = $find['id'];

                     }

                     if(isset($find['avatarUrl'] && $find['avatarUrl'] !== $data['avatarUrl'])
                         {
                             $this->General->update('user',array('id'=>$user_id),array('avatarUrl'=>$data['avatarUrl'])); //如果頭像更改,則更新頭像
                         }

                    echo json_encode(array('status'=>0,'session3rd'=>$data['session3rd'],'user_id'=>$user_id));




            }

            function checkLogin()
            { //如果客戶端存在 session3rd,則post 到此接口,獲取對應(yīng)數(shù)據(jù)
                $session3rd = $this->input->post('session3rd');
                $data = $this->cache->memcached->get($session3rd);
                echo json_encode(array('status'=>0,'session3rd'=>$data));

            }


        }
字段 類型 默認(rèn) 注釋
uid int(10)    
openId varchar(20)   openid
nickName varchar(50)   密碼
gender int(50)   性別
language varchar(50)   密碼
city varchar(50)   城市
province varchar(50)   省份
country varchar(50)   國家
avataUrl varchar(50)   頭像
reg_time int(11) 0 注冊時間


易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://www.szcjxy.com/wxmini/doc/course/21923.html 復(fù)制鏈接 如需定制請聯(lián)系易優(yōu)客服咨詢: 點擊咨詢
在線客服