10 require_once
'EAuthServiceBase.php';
26 protected $client_secret;
31 protected $scope =
'';
36 protected $providerOptions = array(
44 protected $access_token =
'';
53 if (isset($_GET[
'error']) && $_GET[
'error'] ==
'access_denied') {
59 if (isset($_GET[
'code'])) {
60 $code = $_GET[
'code'];
64 $this->authenticated =
true;
70 if (isset($_GET[
'redirect_uri'])) {
71 $redirect_uri = $_GET[
'redirect_uri'];
74 $server = Yii::app()->request->getHostInfo();
75 $path = Yii::app()->request->getUrl();
76 $redirect_uri = $server.$path;
79 Yii::app()->request->redirect($url);
91 return $this->providerOptions[
'authorize'].
'?client_id='.$this->client_id.
'&redirect_uri='.urlencode($redirect_uri).
'&scope='.$this->scope.
'&response_type=code';
99 return $this->providerOptions[
'access_token'].
'?client_id='.$this->client_id.
'&client_secret='.$this->client_secret.
'&code='.$code;
116 $this->
setState(
'auth_token', $token);
117 $this->access_token = $token;
125 if ($this->
hasState(
'auth_token') && $this->
getState(
'expires', 0) > time()) {
126 $this->access_token = $this->
getState(
'auth_token');
127 $this->authenticated =
true;
131 $this->access_token = null;
132 $this->authenticated =
false;
147 throw new CHttpException(401, Yii::t(
'eauth',
'Unable to complete the request because the user was not authenticated.'));
149 $options[
'query'][
'access_token'] = $this->access_token;