天天看點

微信公衆号授權登入之二(tp5)

public function _initialize(){//檢視使用者是否授權登入過 沒有的話跳轉到授權登入頁面
    if(empty(session::get('user'))) {
        $this->redirect('user/login');
    }
}//Index.php
           
//使用者授權登入            User.php頁面
    public function login(){
        if (!empty(session::get('user'))) {
          $user = session::get('user');
//        dump($user);
          $this->redirect('index/index');
        }
        $appId = db('config')->where('name','cat_name4')->value('value');
        $secret = db('config')->where('name','cat_name1')->value('value');
//        dump($appId);dump($secret);die;
        $auth = new Auth($appId,$secret);
        $user = $auth->authorize();
        session::set('user',$user);//授權後存儲使用者資訊
        $this->add_userinfo($user);
        $this->redirect('index/index');
    }
           
public function add_userinfo($user)//添加使用者資訊
{
    $data = ['openid'=>$user['openid'],'vxname'=>$user['nickname'],'status'=>0];
    $user_info =db('user')->where('openid',$user['openid'])->find();
    if(empty($user_info['openid'])){
        db('user')->insert($data);
        $user_info = db('user')->where('openid',$user['openid'])->find();
        $user_id = $user_info['id'];
        session::set('user_id',$user_id);
    }
}
           
/**使用者登出**/
public function logout(Request $req){
    Session::delete('user');//清除session
    Session::delete('user_id');
    echo 'logout ok';
}