public function authenticate() { $result = parent::authenticate(); $context = sfContext::getInstance(); if ($context->getRequest()->hasParameter('token')) { $context->getUser()->setRegisterToken($context->getRequest()->getParameter('token')); } if ($this->getAuthForm()->getRedirectHtml()) { // We got a valid HTML contains JavaScript to redirect to the OpenID provider's site. // This HTML must not include any contents from symfony, so this script will stop here. echo $this->getAuthForm()->getRedirectHtml(); exit; } elseif ($this->getAuthForm()->getRedirectUrl()) { header('Location: ' . $this->getAuthForm()->getRedirectUrl()); exit; } if ($this->getAuthForm()->isValid() && $this->getAuthForm()->getValue('openid') && !$result && $this->isRegisterable()) { $member = $context->getUser()->getMember(true); if (!$member || !$member->getId()) { $member = Doctrine::getTable('Member')->createPre(); $member->generateRegisterToken(); } $member->setConfig('openid', $this->getAuthForm()->getValue('openid')); $this->appendMemberInformationFromProvider($member); $member->save(); $result = $member->getId(); } return $result; }
/** * @see opAuthAdapter::activate() */ public function activate() { parent::activate(); $member = sfContext::getInstance()->getUser()->getMember(); if ($member) { if ($token = Doctrine::getTable('MemberConfig')->retrieveByNameAndMemberId('mobile_address_token', $member->getId())) { $token->delete(); } if ($token = Doctrine::getTable('MemberConfig')->retrieveByNameAndMemberId('pc_address_token', $member->getId())) { $token->delete(); } } return $member; }
public function getAuthParameters() { $params = parent::getAuthParameters(); $params['mobile_uid'] = $this->getRequest()->getMobileUID(false); $params['mobile_cookie_uid'] = $this->getRequest()->getMobileUidCookie(); if (is_callable(array($this->getRequest(), 'getMobileFallbackUID')) && $this->getAuthConfig('allow_fallback_uid')) { $fallbacks = $this->getRequest()->getMobileFallbackUID(); if (isset($fallbacks[0])) { $params['mobile_uid_fallback_op3'] = $fallbacks[0]; } if (isset($fallbacks[1])) { $params['mobile_uid_fallback_op2'] = $fallbacks[1]; } } return $params; }
public function authenticate() { $result = parent::authenticate(); // Callback from Twitter $callbackToken = $this->getRequest()->getParameter('oauth_token'); $callbackVerifier = $this->getRequest()->getParameter('oauth_verifier'); if ($callbackToken && $callbackVerifier) { // Get user access tokens out of the session. $accessToken = sfContext::getInstance()->getUser()->getAttribute('accessToken'); if (0 == strcmp($callbackToken, $accessToken['oauth_token'])) { $instance = OpenPNEOAuth::getInstance($this->urlApiRoot, $this->consumerKey, $this->consumerSecret); $newToken = $instance->getAccessToken($callbackToken, $callbackVerifier); $twitterUserId = $newToken['user_id']; $twitterScreenName = $newToken['screen_name']; $twitterAccessToken = $newToken['oauth_token']; $twitterTokenSecret = $newToken['oauth_token_secret']; $line = Doctrine::getTable('MemberConfig')->findOneByNameAndValue("twitter_user_id", $twitterUserId); if ($line) { // 登録済み $member_id = (int) $line->member_id; $member = Doctrine::getTable('Member')->find($member_id); } else { // 新規登録 $member = Doctrine::getTable('Member')->createPre(); $member->setConfig('twitter_user_id', $twitterUserId); } $member->setConfig('twitter_screen_name', $twitterScreenName); $member->setConfig('twitter_oauth_token', $twitterAccessToken); $member->setConfig('twitter_oauth_token_secret', $twitterTokenSecret); $member->setName($twitterScreenName); $member->setIsActive(true); $member->save(); $result = $member->getId(); } return $result; } //コールバックでは無く、最初にログインボタン押されたらこちら $instance = OpenPNEOAuth::getInstance($this->urlApiRoot, $this->consumerKey, $this->consumerSecret); $requestToken = $instance->getRequestToken($this->urlCallback); // Set user access tokens out of the session. sfContext::getInstance()->getUser()->setAttribute('accessToken', $requestToken); header('Location: ' . $this->urlAuthorize . $requestToken['oauth_token']); exit; }