Example #1
0
 public function loginWithAccessToken(array $accessToken)
 {
     $accessTokenEntity = new AccessTokens();
     $accessTokenEntity->assign($accessToken);
     $token = $accessTokenEntity->findFirst(array("adapterKey = :adapterKey: AND remoteUserId = :remoteUserId: AND version = :version:", 'bind' => array('adapterKey' => $accessToken['adapterKey'], 'version' => $accessToken['version'], 'remoteUserId' => $accessToken['remoteUserId'])));
     if (!$token || !$token->userId) {
         return false;
     }
     $userModel = new UserLogin();
     $userModel->assign(array('id' => $token->userId));
     return $userModel->login();
 }
Example #2
0
 public function registerAction()
 {
     if (!$this->request->isPost()) {
         return;
     }
     $session = $this->getDI()->getSession();
     $user = new OAuthModels\Register();
     $user->assign(array('username' => $this->request->getPost('username'), 'email' => $this->request->getPost('email')));
     if ($this->request->isAjax()) {
         try {
             $userinfo = $user->register();
             $login = new UserModels\Login();
             $login->id = $userinfo->id;
             $login->login();
             OAuthManager::removeAccessToken();
             return $this->showResponseAsJson(UserModels\Login::getCurrentUser());
         } catch (\Exception $e) {
             return $this->showExceptionAsJson($e, $user->getMessages());
         }
     } else {
         try {
             $userinfo = $user->register();
             OAuthManager::removeAccessToken();
             return $this->redirectHandler($this->getDI()->getConfig()->oauth->loginSuccessRedirectUri);
         } catch (\Exception $e) {
             $this->showException($e, $user->getMessages());
             return $this->redirectHandler($this->getDI()->getConfig()->oauth->registerFailedRedirectUri);
         }
     }
 }
Example #3
0
 public function loginByCookie($tokenString)
 {
     $this->getDI()->getEventsManager()->fire('user:beforeLoginByCookie', $tokenString);
     $tokenArray = explode('|', $tokenString);
     if (!$tokenArray || count($tokenArray) < 3) {
         $this->appendMessage(new Message('ERR_USER_REMEMBER_TOKEN_FORMAT_INCORRECT'));
         return false;
     }
     $token = new Entities\Tokens();
     $token->assign(array('sessionId' => $tokenArray[0], 'token' => $tokenArray[1], 'userHash' => $tokenArray[2]));
     $tokenInfo = $token::findFirst();
     if (!$tokenInfo) {
         $this->appendMessage(new Message('ERR_USER_REMEMBER_TOKEN_NOT_FOUND'));
         return false;
     }
     if ($tokenInfo->expiredAt < time()) {
         $this->appendMessage(new Message('ERR_USER_REMEMBER_TOKEN_EXPIRED'));
         return false;
     }
     $login = new Login();
     $login->id = $tokenInfo->userId;
     return $login->login();
 }
Example #4
0
 public function loginByCookie($tokenString)
 {
     $this->getDI()->getEventsManager()->fire('user:beforeLoginByCookie', $tokenString);
     $tokenArray = explode('|', $tokenString);
     if (!$tokenArray || count($tokenArray) < 3) {
         $this->appendMessage(new Message('ERR_USER_REMEMBER_TOKEN_FORMAT_INCORRECT'));
         return false;
     }
     $token = new Entities\Tokens();
     $tokenInfo = $token::findFirst(array("conditions" => "sessionId = :sessionId: AND token = :token: AND userHash = :userHash:", "bind" => array('sessionId' => $tokenArray[0], 'token' => $tokenArray[1], 'userHash' => $tokenArray[2])));
     if (!$tokenInfo) {
         $this->appendMessage(new Message('ERR_USER_REMEMBER_TOKEN_NOT_FOUND'));
         return false;
     }
     if ($tokenInfo->expiredAt < time()) {
         $this->appendMessage(new Message('ERR_USER_REMEMBER_TOKEN_EXPIRED'));
         return false;
     }
     $userinfo = User::findFirst($tokenInfo->userId);
     $rememberMeHash = $this->getRememberMeHash($userinfo);
     //User changed status or password
     if ($rememberMeHash != $tokenInfo->userHash) {
         $this->appendMessage(new Message('ERR_USER_REMEMBER_TOKEN_ILLEGAL'));
         return false;
     }
     $login = new Login();
     $login->id = $tokenInfo->userId;
     $userinfo = $login->login();
     return $userinfo;
 }