Search moodle.org's
Developer Documentation

See Release Notes
Long Term Support Release

  • Bug fixes for general core bugs in 4.1.x will end 13 November 2023 (12 months).
  • Bug fixes for security issues in 4.1.x will end 10 November 2025 (36 months).
  • PHP version: minimum PHP 7.4.0 Note: minimum PHP version has increased since Moodle 4.0. PHP 8.0.x is supported too.
<?php

namespace IMSGlobal\LTI\ToolProvider;

use IMSGlobal\LTI\OAuth;

/**
 * Class to represent an OAuth datastore
 *
 * @author  Stephen P Vickers <svickers@imsglobal.org>
 * @copyright  IMS Global Learning Consortium Inc
 * @date  2016
 * @version 3.0.2
 * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
 */
> #[\AllowDynamicProperties]
class OAuthDataStore extends OAuth\OAuthDataStore { /** * Tool Provider object. * * @var ToolProvider $toolProvider */ private $toolProvider = null; /** * Class constructor. * * @param ToolProvider $toolProvider Tool_Provider object */ public function __construct($toolProvider) { $this->toolProvider = $toolProvider; } /** * Create an OAuthConsumer object for the tool consumer. * * @param string $consumerKey Consumer key value * * @return OAuthConsumer OAuthConsumer object */ function lookup_consumer($consumerKey) { return new OAuth\OAuthConsumer($this->toolProvider->consumer->getKey(), $this->toolProvider->consumer->secret); } /** * Create an OAuthToken object for the tool consumer. * * @param string $consumer OAuthConsumer object * @param string $tokenType Token type * @param string $token Token value * * @return OAuthToken OAuthToken object */ function lookup_token($consumer, $tokenType, $token) { return new OAuth\OAuthToken($consumer, ''); } /** * Lookup nonce value for the tool consumer. * * @param OAuthConsumer $consumer OAuthConsumer object * @param string $token Token value * @param string $value Nonce value * @param string $timestamp Date/time of request * * @return boolean True if the nonce value already exists */ function lookup_nonce($consumer, $token, $value, $timestamp) { $nonce = new ConsumerNonce($this->toolProvider->consumer, $value); $ok = !$nonce->load(); if ($ok) { $ok = $nonce->save(); } if (!$ok) { $this->toolProvider->reason = 'Invalid nonce.'; } return !$ok; } /** * Get new request token. * * @param OAuthConsumer $consumer OAuthConsumer object * @param string $callback Callback URL * * @return string Null value */ function new_request_token($consumer, $callback = null) { return null; } /** * Get new access token. * * @param string $token Token value * @param OAuthConsumer $consumer OAuthConsumer object * @param string $verifier Verification code * * @return string Null value */ function new_access_token($token, $consumer, $verifier = null) { return null; } }