Login.class.php 4.87 KB
<?php
/**
 * 登录控制器
 */
class Controller_Login extends Controller_Abstract
{
    /**
     * 首页
     */
    public function indexAction()
    {
    	return 'Run';
    }
    
    /**
     * 登录
     */
    public function backAction()
    {
    	if ($this->_request->isPost())
    	{
    		$account  = trim($this->_request->account) ;
    		$password = trim($this->_request->password) ;
    		$fields   = trim($this->_request->fields) ;
            ////2015-4-13 wuxiao app增加国际手机号登录注册
    		//$result = Facade_Auth::checkLogin($account, $password);
			//@file_put_contents('/tmp/sso',date('Y-m-d H:i:s', time()).'|'.$account.'|'.$password."\n", FILE_APPEND);
            $area = trim($this->_request->area) ;
            $result = Facade_Auth::checkLogin($account, $password, true, 0  , true, $area);
    		if ( isset($result['uid']) )
    		{
    			//构造信息返回
    			$data = Facade_Userinfo::getUserinfoForApp($result['uid'], $fields, $this->_appScope);
    			//返回密码
    			if (in_array($this->_appId, array('1392109210','1392109259','1392109260'))) 
    			{
    				$data['password'] = Facade_Auth::getPassword($result['uid']);
    				$data['list'] = Facade_Auth::getAllAuth($result['uid']);
    			}
    			return $this->returnJson($result['code'], $data,$result['message']);
    		}else{
				file_put_contents('/tmp/sso-'.date('Y-m-d').'.log', '登录错误['.date('H:i:s').']-账户:'.$account.' 密码:'.$password.' 地区码:'.$area."\n", FILE_APPEND);
			}
    		return $this->returnJson($result['code'], array(), $result['message']);
    	}
    }
    
    /**
     * 校验有货账号的有效性
     */
    public function validYohoBuyLoginAction()
    {
        if ($this->_request->isPost())
        {
            $account  = trim($this->_request->account) ;
            $password = trim($this->_request->password) ;
            $result = Facade_Auth::checkLogin($account, $password,false,false,false);
            if ( isset($result['uid']) )
            {
                //检验是否为有货账号
                /* $userinfo = Facade_Userinfo::getUserinfoByUid($result['uid']);
               
                if (!in_array($userinfo['app_id'], array('1392109259')))
                {
                    return $this->returnJson(Config_Code::$error['user_not_exist']['code'], array(), Config_Code::$error['user_not_exist']['message']);
                } */
                $userinfo = array('uid' => $result['uid']);
                $userinfo['list'] = Facade_Auth::getAllAuth($result['uid']);
                return $this->returnJson($result['code'], $userinfo,$result['message']);
            }
            return $this->returnJson($result['code'], array(), $result['message']);
        }
    }
    
    
    /**
     * 登录回调
     */
    public function callbackloginAction()
    {
    	if ($this->_request->isPost())
    	{
    		$account  = trim($this->_request->account) ;
    		$password = trim($this->_request->password) ;
    		$fields   = trim($this->_request->fields) ;
    		$callback = trim($this->_request->callback);//回调地址
    		$method   = trim($this->_request->method);//回调地址采用的方法
    		$data = array();
    		do
    		{
    			if (!$callback ) 
    			{
    				exit('Missing parameter: callback');
    			}
    			//校验参数
    			if (!$method ) 
    			{
    				$data['code'] =  Config_Code::$error['missing_parameter']['code'] ;
    				$data['message'] =  Config_Code::$error['missing_parameter']['message'] ;
    				break;
    			}
	    		$result = Facade_Auth::checkLogin($account, $password); 
	    		if ( isset($result['uid']) )
	    		{
	    			//构造信息返回
	    			$data = $data + Facade_Userinfo::getUserinfoForApp($result['uid'], $fields, $this->_appScope);
	    		}else
	    		{
	    			$data['code'] =  $result['code'] ;
	    			$data['message'] =  $result['message'] ;
	    			break;
	    		}
    		}while (false);
    		return $this->_callback($callback, $method, $data);
    	}
    }
    
    
    /**
     * 根据session
     */
    public function getUidBySidAction()
    {
    	if ($this->_request->isPost()) 
    	{
    		$sid = trim($this->_request->sid);
    		if (!$sid) 
    		{
                return $this->returnJson(Config_Code::$error['missing_parameter']['code'], array('uid' => 0),Config_Code::$error['missing_parameter']['message']);
    		}
    		$session = Facade_Auth::getSessionBySid($sid);
    		$uid = isset($session['uid'])?$session['uid']:0 ;
    		if ($uid) 
    		{
    			 $result = array
                 (
                    'uid' => $uid ,
                    'password' => Facade_Auth::getPassword($uid),
                    'list' => Facade_Auth::getAllAuth($uid)
                 );
    		}else
    		{
    		    $result = array('uid'=>0) ;
    		}
    		return $this->returnJson(Config_Code::$success['system']['code'], $result,Config_Code::$success['system']['code']);
    	}
    }
}