Initial commit
This commit is contained in:
		
							
								
								
									
										113
									
								
								OAuthDataProvider.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										113
									
								
								OAuthDataProvider.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,113 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
namespace 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;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user