Ejemplo n.º 1
0
 /**
  * Handle a request for an OAuth2.0 Access Token and send the response to the client
  *
  * @apiMethod POST
  * @apiUri    /developer/oauth/token
  * @return    void
  */
 public function tokenTask()
 {
     $server = new Server(new MysqlStorage());
     $server->handleTokenRequest(\OAuth2\Request::createFromGlobals())->send();
     exit;
 }
Ejemplo n.º 2
0
 /**
  * Validates incoming request via OAuth2 specification
  *
  * @param   array  $params   Oauth server request parameters
  * @param   array  $options  OAuth server configuration options
  * @return  array
  */
 public function authenticate($params = array(), $options = array())
 {
     // Placeholder response
     $response = ['user_id' => null];
     // Fire before auth event
     Event::trigger('before_auth');
     // Load oauth server
     $oauthServer = new Server(new MysqlStorage(), $options);
     $oauthRequest = \OAuth2\Request::createFromGlobals();
     $oauthResponse = new \OAuth2\Response();
     // Validate request via oauth
     $oauthServer->verifyResourceRequest($oauthRequest, $oauthResponse);
     // Store our token locally
     $this->token = $oauthServer->getAccessTokenData($oauthRequest);
     // See if we have a valid user
     if (isset($this->token['uidNumber'])) {
         $response['user_id'] = $this->token['uidNumber'];
         $user = User::oneOrNew($response['user_id']);
         if ($user->get('id')) {
             $user->set('guest', false);
         }
         $this->app['session']->set('user', $user);
     }
     // Fire after auth event
     Event::trigger('after_auth');
     // Return the response
     return $response;
 }