예제 #1
0
 /**
  * @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;
 }
예제 #2
0
 /**
  * @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;
     }
 }
예제 #3
0
 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');
 }