/** * @return OAuthToken auth token instance. * @throws QqExmailException */ public function getAccessToken() { $accessToken = parent::getAccessToken(); if (null === $accessToken || !$accessToken->getIsValid()) { $accessToken = $this->fetchAccessToken(); } if (null === $accessToken) { throw new QqExmailException('getAccessToken Fail.'); } return $accessToken; }
/** * @param OAuthToken $accessToken * * @return bool */ public function isConnected(OAuthToken $accessToken = null) { /** * @var $service \yii\authclient\BaseOAuth */ if ($accessToken === null) { $accessToken = $this->service->getAccessToken(); } if (is_object($accessToken) && $accessToken->getIsValid()) { return true; } else { return false; } }
public function actionSuccess() { $session = \Yii::$app->session; $request = \Yii::$app->request; $authHeader = 'Authorization: Basic ' . base64_encode("{$this->clientId}:{$this->secret}"); $contentHeader = 'Content-Type: application/x-www-form-urlencoded'; $httpHeaders = array($authHeader, $contentHeader); $oauth = new OAuth2(); $oauth->clientId = $this->clientId; $oauth->clientSecret = $this->secret; $oauth->returnUrl = "http://localhost" . Yii::getAlias('@web/index.php/login/success'); $oauth->tokenUrl = 'https://api.fitbit.com/oauth2/token'; $oauth->fetchAccessToken($request->get('code'), [], $httpHeaders); $token = $oauth->getAccessToken(); $session->set('dump', $token); return $this->redirect('@web/index.php/site/dump'); }