Exemple #1
0
 public static function getInstance() {
     if (!self::$me) {
         $class=new ologin();
         self::$me=$class;
     }
     return self::$me;
 }
    function respond() {
        
        ini_set("display_errors","On");
        $where = array('ologin_code'=>front::$get['ologin_code']);
        $ologins = ologin::getInstance()->getrows($where);
        $ologin = unserialize_config($ologins[0]['ologin_config']);

        //var_dump($ologin);
        
        $aliapy_config['partner'] = $ologin['alipaylogin_id'];
        $aliapy_config['key'] = $ologin['alipaylogin_key'];
        $aliapy_config['return_url'] = ologin::url(basename(__FILE__,'.php'));
        $aliapy_config['sign_type']    = 'MD5';
        $aliapy_config['input_charset']= 'utf-8';
        $aliapy_config['transport']    = 'http';
        $aliapy_config['cacert']    = getcwd().'/lib/plugins/alipayauth/cacert.pem';
        //var_dump($aliapy_config);
        unset($_GET['case']);unset($_GET['act']);unset($_GET['ologin_code']);unset($_GET['site']);
        require_once("alipayauth/alipay_notify.class.php");
        $alipayNotify = new AlipayNotify($aliapy_config);
        //var_dump($alipayNotify);
        $verify_result = $alipayNotify->verifyReturn();
        //var_dump($verify_result);
        if($verify_result) {//验证成功
            $user_id = front::$get['user_id'];
            $token = front::$get['token'];
            session::set('access_token',$token);
            session::set("openid",$user_id);
            return array('nickname'=>  front::get('real_name'));
        }
        else {
            echo "验证失败";exit;
        }
    }
 function qq_callback($ologin_cfg) {
     if (front::$get['state'] == session::get('qq_state')) { //csrf
         $token_url = "https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&" . "client_id=" . $ologin_cfg["qq_appid"] . "&redirect_uri=" . urlencode(ologin::url(basename(__FILE__, '.php'))) . "&client_secret=" . $ologin_cfg["qq_key"] . "&code=" . front::$get["code"];
         $response = file_get_contents($token_url);
         //var_dump($response);exit;
         if (strpos($response, "callback") !== false) {
             $lpos = strpos($response, "(");
             $rpos = strrpos($response, ")");
             $response = substr($response, $lpos + 1, $rpos - $lpos - 1);
             $msg = json_decode($response);
             if (isset($msg->error)) {
                 echo "<h3>error:</h3>" . $msg->error;
                 echo "<h3>msg  :</h3>" . $msg->error_description;
                 exit;
             }
         }
         $params = array();
         parse_str($response, $params);
         session::set('access_token', $params["access_token"]);
     }
 }
 function login_action() {
     if(!$this->loginfalsemaxtimes())
         if(front::post('submit')) {
             if(config::get('verifycode')) {
                 if(!session::get('verify') ||front::post('verify')<>session::get('verify')) {
                     front::flash(lang('验证码错误!')."<a href=''>".lang('backuppage')."</a>");
                     return;
                 }
             }
             if(front::post('username') &&front::post('password')) {
                 $username=front::post('username');
                 $password=md5(front::post('password'));
                 $data=array(
                         'username'=>$username,
                         'password'=>$password,
                 );
                 $user=new user();
                 $user=$user->getrow(array('username'=>$data['username'],'password'=>$data['password']));
                 if(!is_array($user)) {
                     $this->login_false();
                     return;
                 }
                 $user=$data;
                 cookie::set('login_username',$user['username']);
                 cookie::set('login_password',front::cookie_encode($user['password']));
                 session::set('username',$user['username']);
                 $this->view->from=front::post('from')?front::post('from'):front::$from;
                 front::flash($this->fetch('user/login_success.html'));
                 return;
             }
             else {
                 $this->login_false();
                 return;
             }
         }
         $this->view->ologinlist = ologin::getInstance()->getrows('',50);
 }