/** * Handle the request. * * @return void * * @since 1.0 */ public function execute() { // Verify that we have an OAuth 2.0 application. $this->initialise(); // Generate temporary credentials for the client. $credentials = new MOauth2Credentials($this->request); // Get the client object $client = $this->fetchClient($this->request->client_id); // Doing authentication using Joomla! users if ($credentials->doJoomlaAuthentication($client) == false) { $this->respondError(400, 'unauthorized_client', 'The Joomla! credentials are not valid.'); } // Load the JUser class on application for this client $this->app->loadIdentity($client->_identity); // Initialize the credentials for this request $credentials->initialise($client->_identity->id, $this->app->get('oauth.tokenlifetime', 'PT1H')); // Build the response for the client. $response = array('oauth_code' => $credentials->getTemporaryToken(), 'oauth_state' => true); // Check if the request is CORS ( Cross-origin resource sharing ) and change the body if true $body = $this->prepareBody($response); // Set the response code and body. $this->response->setHeader('status', '200')->setBody($body)->respond(); }