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(); }
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); } } }
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(); }
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; }