用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4105|回复: 2
收起左侧

[程序 App] 小程序 微信登录例子

[复制链接]
发表于 2017-5-30 13:48:54 | 显示全部楼层 |阅读模式
具体搭建传送门:小程序开发记录

代码片段
PHP复制代码
 
 
                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,如果不存在,写入表再发回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 到此接口,获取对应数据
                                $session3rd = $this->input->post('session3rd');
                                $data = $this->cache->memcached->get($session3rd);
                                echo json_encode(array('status'=>0,'session3rd'=>$data));
 
                        }
 
                       
                }
 
 
复制代码

评分

参与人数 1威望 +3 收起 理由
Hex + 3 赞一个!

查看全部评分

发表于 2017-5-31 10:15:48 | 显示全部楼层
希望能把所有代码都发上来。
发表于 2018-5-29 00:17:55 | 显示全部楼层
希望能把所有代码都发上来。

本版积分规则