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 bindUserOAuth($userId, array $accessToken) { $token = AccessTokens::findFirst(array("conditions" => "adapterKey = :adapterKey: AND version = :version: AND remoteUserId = :remoteUserId:", "bind" => array('adapterKey' => $accessToken['adapterKey'], 'version' => $accessToken['version'], 'remoteUserId' => $accessToken['remoteUserId']))); if ($token) { $token->userId = $userId; if (!$token->save()) { throw new Exception\RuntimeException('ERR_OAUTH_TOKEN_UPDATE_FAILED'); } return $token; } else { $accessTokenEntity = new AccessTokens(); $accessTokenEntity->assign($accessToken); $accessTokenEntity->tokenStatus = 'active'; $accessTokenEntity->userId = $userId; if (!$accessTokenEntity->save()) { throw new Exception\RuntimeException('ERR_OAUTH_TOKEN_UPDATE_FAILED'); } return $token; } }