<?php␊ |
␊ |
namespace system\vendor\phpoauthlib2;␊ |
␊ |
require "ccurl.php";␊ |
␊ |
use phpoauthlib2\ccurl;␊ |
␊ |
class OAUTH_SCOPES {␊ |
const EMAIL = "EMAIL";␊ |
}␊ |
␊ |
class OAuthDataProvider {␊ |
protected $version = "2.0";␊ |
protected $name = "undefined";␊ |
protected $responseType = "code";␊ |
protected $header = "Authorization: Bearer";␊ |
protected $profile = "";␊ |
protected $dialog = "";␊ |
protected $nonce = null;␊ |
protected $accessToken = null;␊ |
␊ |
protected $state = "";␊ |
protected $redirectURL = "";␊ |
protected $scope = "";␊ |
protected $clientId = "";␊ |
protected $client_secret = "";␊ |
␊ |
protected $request = null;␊ |
protected $profileData = [];␊ |
␊ |
public function __construct($profile, $dialog, $accessToken, $request, $header="Authorization: Bearer") {␊ |
$this->profile = $profile;␊ |
$this->dialog = $dialog;␊ |
$this->accessToken = $accessToken;␊ |
$this->header = $header;␊ |
$this->request = $request;␊ |
}␊ |
␊ |
public function getLoginUrl() {␊ |
$urlBuilder = [];␊ |
$urlBuilder[] = "client_id=" . $this->clientId;␊ |
$urlBuilder[] = "response_type=" . $this->responseType;␊ |
$urlBuilder[] = "scope=" . $this->scope;␊ |
$urlBuilder[] = "state=" . $this->state;␊ |
$urlBuilder[] = "redirect_uri=" . urlencode($this->redirectURL);␊ |
return $this->dialog . "?" . implode("&", $urlBuilder);␊ |
}␊ |
␊ |
protected function getToken() {␊ |
$tokenBuilder = [];␊ |
$tokenBuilder["client_id"] = $this->clientId;␊ |
$tokenBuilder["client_secret"] = $this->client_secret;␊ |
$tokenBuilder["grant_type"] = "authorization_code";␊ |
$tokenBuilder["redirect_uri"] = htmlspecialchars($this->redirectURL);␊ |
$tokenBuilder["code"] = $this->request["code"];␊ |
$curl = new ccurl($this->accessToken);␊ |
$curl->setPost($tokenBuilder);␊ |
$curl->createCurl();␊ |
return (string)$curl;␊ |
}␊ |
␊ |
protected function parseToken() {␊ |
$token = $this->getToken();␊ |
$convertedToken = json_decode($token, true);␊ |
if (!$convertedToken) {␊ |
$realToken = $token;␊ |
} else {␊ |
$realToken = $convertedToken["access_token"];␊ |
}␊ |
␊ |
return $realToken;␊ |
}␊ |
␊ |
public function getProfile() {␊ |
$token = $this->parseToken();␊ |
␊ |
$profileUrl = $this->profile . "=" . $token;␊ |
$curl = new ccurl($profileUrl);␊ |
$curl->addHeader($this->header . " " . $token);␊ |
$curl->createCurl();␊ |
$this->profileData = json_decode((string)$curl, true);␊ |
return (string)$curl;␊ |
}␊ |
␊ |
public function getEmail() {␊ |
return null;␊ |
}␊ |
␊ |
public function getFirstName() {␊ |
return null;␊ |
}␊ |
␊ |
public function getLastName() {␊ |
return null;␊ |
}␊ |
␊ |
public function getGender() {␊ |
return null;␊ |
}␊ |
␊ |
public function getId() {␊ |
return null;␊ |
}␊ |
␊ |
public function getRawProfile() {␊ |
return $this->profileData;␊ |
}␊ |
␊ |
public function getSource() {␊ |
return null;␊ |
}␊ |
} |