Moodle APIs 3.9
Moodle 3.9.13+ (Build: 20220325)
|
Configurable OAuth2 client to request authorization and store token. More...
Public Member Functions | |
__construct (\core\oauth2\issuer $issuer, $returnurl='', $additionalscopes='', $backpack=null) | |
client constructor. More... | |
base64url_encode ($plaintext) | |
Generate base64url encode. More... | |
build_post_data ($params) | |
Given an array of name value pairs - build a valid HTTP POST application/x-www-form-urlencoded string. More... | |
cleanopt () | |
Reset http method. | |
code_challenge () | |
Generate code challenge. More... | |
code_verifier () | |
Get code verifier. More... | |
delete ($url, $param=array(), $options=array()) | |
HTTP DELETE method. More... | |
download ($requests, $options=array()) | |
Download multiple files in parallel. More... | |
download_one ($url, $params, $options=array()) | |
Downloads one file and writes it to the specified file handler. More... | |
get ($url, $params=array(), $options=array()) | |
HTTP GET method. More... | |
get_accesstoken () | |
Get access token. More... | |
get_additional_login_parameters () | |
Override to append additional params to a authentication request. More... | |
get_clientid () | |
Get the client ID. More... | |
get_clientsecret () | |
Get the client secret. More... | |
get_errno () | |
Get curl error code. More... | |
get_info () | |
Get curl information. More... | |
get_issuer () | |
Get the oauth2 issuer for this client. More... | |
get_login_url () | |
Get login url. More... | |
get_raw_response () | |
Get raw HTTP Response Headers. More... | |
get_refresh_token () | |
Get a refresh token!!! More... | |
get_security () | |
Returns the current curl security helper. More... | |
get_userinfo () | |
Fetch the user info from the user info endpoint and map all the fields back into moodle fields. More... | |
getResponse () | |
Get HTTP Response Headers. More... | |
head ($url, $options=array()) | |
HTTP HEAD method. More... | |
is_logged_in () | |
Check and refresh token to keep login on backpack site. More... | |
log_out () | |
Logs out of a oauth request, clearing any stored tokens. More... | |
options ($url, $options=array()) | |
HTTP OPTIONS method. More... | |
patch ($url, $params='', $options=array()) | |
HTTP PATCH method. More... | |
post ($url, $params='', $options=array()) | |
HTTP POST method. More... | |
put ($url, $params=array(), $options=array()) | |
HTTP PUT method. More... | |
resetcookie () | |
Reset Cookie. | |
resetHeader () | |
Resets the HTTP Request headers (to prepare for the new request) | |
resetopt () | |
Resets the CURL options that have already been set. | |
set_security ($securityobject) | |
Sets the curl security helper. More... | |
setHeader ($header) | |
Set HTTP Request Header. More... | |
setopt ($options=array()) | |
Set curl options. More... | |
trace ($url, $options=array()) | |
HTTP TRACE method. More... | |
upgrade_refresh_token (system_account $systemaccount) | |
Upgrade a refresh token from oauth 2.0 to an access token. More... | |
upgrade_token ($code) | |
Upgrade a authorization token from oauth 2.0 to an access token. More... | |
upgrade_token ($code, $granttype='authorization_code') | |
Request new token. More... | |
Static Public Member Functions | |
static | callback_url () |
Callback url where the request is returned to. More... | |
static | get_cacert () |
Get the location of ca certificates. More... | |
static | mock_response ($response) |
For use only in unit tests - we can pre-set the next curl response. More... | |
static | strip_double_headers ($input) |
When using a proxy, an additional HTTP response code may appear at the start of the header. More... | |
Public Attributes | |
string null | $backpack = '' |
backpack object | |
bool | $cache = false |
Caches http request contents. | |
bool | $emulateredirects = null |
Perform redirects at PHP level instead of relying on native cURL functionality. More... | |
int | $errno |
error code | |
string | $error |
error | |
array | $header = array() |
http header | |
string | $info |
cURL information | |
bool | $proxy = null |
Uses proxy, null means automatic based on URL. | |
array | $rawresponse = array() |
Raw response headers, needed for BC in download_file_content(). | |
array | $response = array() |
http's response | |
string | $version = '0.4 dev' |
library version | |
Protected Member Functions | |
auth_url () | |
Returns the auth url for OAuth 2.0 request. More... | |
get_login_scopes () | |
Override to change the scopes requested with an authentiction request. More... | |
get_scopes () | |
Get scopes granted. More... | |
get_stored_token () | |
Get token of current user. More... | |
get_tokenname () | |
We want a unique key for each issuer / and a different key for system vs user oauth. More... | |
get_userinfo_mapping () | |
Get a list of the mapping user fields in an associative array. More... | |
multi ($requests, $options=array()) | |
Multiple HTTP Requests This function could run multi-requests in parallel. More... | |
request ($url, $options=array()) | |
Single HTTP Request. More... | |
request ($url, $options=array(), $acceptheader='application/json') | |
Make a HTTP request, adding the access token we have. More... | |
reset_request_state_vars () | |
Helper function to reset the request state vars. More... | |
store_token ($token) | |
Store a token to verify for send request. More... | |
token_url () | |
Returns the token url for OAuth 2.0 request. More... | |
use_http_get () | |
Should HTTP GET be used instead of POST? Some APIs do not support POST and want oauth to use GET instead (with the auth_token passed as a GET param). More... | |
Configurable OAuth2 client to request authorization and store token.
Use the PKCE method to verifier authorization.
core_badges\oauth2\client::__construct | ( | \core\oauth2\issuer | $issuer, |
$returnurl = '' , |
|||
$additionalscopes = '' , |
|||
$backpack = null |
|||
) |
client constructor.
issuer | $issuer | oauth2 service. |
string | $returnurl | return url after login |
string | $additionalscopes | the scopes has been granted |
null | $backpack | backpack object. |
coding_exception | error message. |
|
protectedinherited |
Returns the auth url for OAuth 2.0 request.
string | the auth url |
Reimplemented from oauth2_client.
core_badges\oauth2\client::base64url_encode | ( | $plaintext | ) |
Generate base64url encode.
string | $plaintext | text to convert. |
string |
|
inherited |
Given an array of name value pairs - build a valid HTTP POST application/x-www-form-urlencoded string.
array | $params | Name / value pairs. |
string | POST data. |
|
static |
Callback url where the request is returned to.
moodle_url | url of callback |
Reimplemented from oauth2_client.
core_badges\oauth2\client::code_challenge | ( | ) |
Generate code challenge.
string |
core_badges\oauth2\client::code_verifier | ( | ) |
Get code verifier.
bool |
|
inherited |
HTTP DELETE method.
string | $url | |
array | $param | |
array | $options |
bool |
|
inherited |
Download multiple files in parallel.
Calls multi() with specific download headers
$c = new curl(); $file1 = fopen('a', 'wb'); $file2 = fopen('b', 'wb'); $c->download(array( array('url'=>'http://localhost/', 'file'=>$file1), array('url'=>'http://localhost/20/', 'file'=>$file2) )); fclose($file1); fclose($file2);
or
$c = new curl(); $c->download(array( array('url'=>'http://localhost/', 'filepath'=>'/tmp/file1.tmp'), array('url'=>'http://localhost/20/', 'filepath'=>'/tmp/file2.tmp') ));
array | $requests | An array of files to request { url => url to download the file [required] file => file handler, or filepath => file path } If 'file' and 'filepath' parameters are both specified in one request, the open file handle in the 'file' parameter will take precedence and 'filepath' will be ignored. |
array | $options | An array of options to set |
array | An array of results |
|
inherited |
Downloads one file and writes it to the specified file handler.
$c = new curl(); $file = fopen('savepath', 'w'); $result = $c->download_one('http://localhost/', null, array('file' => $file, 'timeout' => 5, 'followlocation' => true, 'maxredirs' => 3)); fclose($file); $download_info = $c->get_info(); if ($result === true) { // file downloaded successfully } else { $error_text = $result; $error_code = $c->get_errno(); }
$c = new curl(); $result = $c->download_one('http://localhost/', null, array('filepath' => 'savepath', 'timeout' => 5, 'followlocation' => true, 'maxredirs' => 3)); // ... see above, no need to close handle and remove file if unsuccessful
string | $url | |
array | null | $params | key-value pairs to be added to $url as query string |
array | $options | request options. Must include either 'file' or 'filepath' |
bool|string | true on success or error string on failure |
|
inherited |
HTTP GET method.
string | $url | |
array | $params | |
array | $options |
bool |
|
inherited |
Get access token.
This is just a getter to read the private property.
string |
|
inherited |
Override to append additional params to a authentication request.
array | (name value pairs). |
Reimplemented from oauth2_client.
|
staticinherited |
Get the location of ca certificates.
string | absolute file path or empty if default used |
|
inherited |
Get the client ID.
This is just a getter to read the private property.
string |
|
inherited |
Get the client secret.
This is just a getter to read the private property.
string |
|
inherited |
Get curl error code.
int |
|
inherited |
Get curl information.
string |
|
inherited |
Get the oauth2 issuer for this client.
core::oauth2::issuer | Issuer |
|
protectedinherited |
Override to change the scopes requested with an authentiction request.
string |
core_badges\oauth2\client::get_login_url | ( | ) |
Get login url.
moodle_url |
coding_exception | |
moodle_exception |
Reimplemented from oauth2_client.
|
inherited |
Get raw HTTP Response Headers.
array | of strings |
|
inherited |
Get a refresh token!!!
string |
|
protected |
Get scopes granted.
null|string |
|
inherited |
Returns the current curl security helper.
core::files::curl_security_helper | instance. |
|
protected |
Get token of current user.
stdClass|null | token object |
Reimplemented from core\oauth2\client.
|
protectedinherited |
We want a unique key for each issuer / and a different key for system vs user oauth.
string | The unique key for the session value. |
Reimplemented from oauth2_client.
|
inherited |
Fetch the user info from the user info endpoint and map all the fields back into moodle fields.
array|false | Moodle user fields for the logged in user (or false if request failed) |
|
protectedinherited |
Get a list of the mapping user fields in an associative array.
array |
|
inherited |
Get HTTP Response Headers.
array | of arrays |
|
inherited |
core_badges\oauth2\client::is_logged_in | ( | ) |
Check and refresh token to keep login on backpack site.
bool |
coding_exception | |
moodle_exception |
Reimplemented from oauth2_client.
|
inherited |
Logs out of a oauth request, clearing any stored tokens.
Reimplemented in boxnet_client.
|
staticinherited |
For use only in unit tests - we can pre-set the next curl response.
This is useful for unit testing APIs that call external systems.
string | $response |
|
protectedinherited |
Multiple HTTP Requests This function could run multi-requests in parallel.
array | $requests | An array of files to request |
array | $options | An array of options to set |
array | An array of results |
Reimplemented from curl.
|
inherited |
HTTP OPTIONS method.
string | $url | |
array | $options |
bool |
|
inherited |
HTTP PATCH method.
string | $url | |
array | string | $params | |
array | $options |
bool |
|
inherited |
HTTP POST method.
string | $url | |
array | string | $params | |
array | $options |
bool |
Reimplemented in microsoft_skydrive.
|
inherited |
HTTP PUT method.
string | $url | |
array | $params | |
array | $options |
bool |
|
protectedinherited |
Single HTTP Request.
string | $url | The URL to request |
array | $options |
bool |
|
protectedinherited |
Make a HTTP request, adding the access token we have.
string | $url | The URL to request |
array | $options | |
mixed | $acceptheader | mimetype (as string) or false to skip sending an accept header. |
bool |
Reimplemented in google_oauth.
|
protectedinherited |
Helper function to reset the request state vars.
void. |
|
inherited |
Sets the curl security helper.
core::files::curl_security_helper | $securityobject | instance/subclass of the base curl_security_helper class. |
bool | true if the security helper could be set, false otherwise. |
|
inherited |
Set HTTP Request Header.
array | $header |
|
inherited |
Set curl options.
Do not use the curl constants to define the options, pass a string corresponding to that constant. Ie. to set CURLOPT_MAXREDIRS, pass array('CURLOPT_MAXREDIRS' => 10) or array('maxredirs' => 10) to this method.
array | $options | If array is null, this function will reset the options to default value. |
void |
coding_exception | If an option uses constant value instead of option name. |
|
protected |
Store a token to verify for send request.
null | stdClass | $token |
Reimplemented from core\oauth2\client.
|
staticinherited |
When using a proxy, an additional HTTP response code may appear at the start of the header.
For example, when using https over a proxy there may be 'HTTP/1.0 200 Connection Established'. Other codes are also possible and some may come with their own headers.
If using the return value containing all headers, this function can be called to remove unwanted doubles.
Note that it is not possible to distinguish this situation from valid data unless you know the actual response part (below the headers) will not be included in this string, or else will not 'look like' HTTP headers. As a result it is not safe to call this function for general data.
string | $input | Input HTTP response |
string | HTTP response with additional headers stripped if any |
|
protectedinherited |
Returns the token url for OAuth 2.0 request.
We are overriding the parent function so we get this from the configured endpoint.
string | the auth url |
Reimplemented from oauth2_client.
|
inherited |
HTTP TRACE method.
string | $url | |
array | $options |
bool |
|
inherited |
Upgrade a refresh token from oauth 2.0 to an access token.
core::oauth2::system_account | $systemaccount |
boolean | true if token is upgraded succesfully |
moodle_exception | Request for token upgrade failed for technical reasons |
|
inherited |
Upgrade a authorization token from oauth 2.0 to an access token.
string | $code | the code returned from the oauth authenticaiton |
boolean | true if token is upgraded succesfully |
core_badges\oauth2\client::upgrade_token | ( | $code, | |
$granttype = 'authorization_code' |
|||
) |
Request new token.
string | $code | code verify from Auth site. |
string | $granttype | grant type. |
bool |
moodle_exception |
|
protectedinherited |
Should HTTP GET be used instead of POST? Some APIs do not support POST and want oauth to use GET instead (with the auth_token passed as a GET param).
bool | true if GET should be used |
|
inherited |
Perform redirects at PHP level instead of relying on native cURL functionality.
Always true now.