Esempio n. 1
0
 public function handle($request, $db)
 {
     $oauth_model = new OAuthModel();
     $oauth_model->setUpOAuthAndDb($db);
     switch ($request->url_elements[3]) {
         case 'request_token':
             $tokens = $oauth_model->newRequestToken($db, $request->parameters['oauth_callback']);
             if ($tokens) {
                 // bypass the view handling
                 echo 'login_url=http://lorna.rivendell.local/user/oauth_allow?' . 'request_token=' . $tokens['request_token'] . '&request_token=' . $tokens['request_token'] . '&request_token_secret=' . $tokens['request_token_secret'] . '&oauth_callback_confirmed=true';
             }
             break;
         case 'access_token':
             $tokens = $oauth_model->newAccessToken($db, $request->parameters['oauth_token'], $request->parameters['oauth_verifier']);
             if ($tokens) {
                 echo "oauth_token=" . $tokens['oauth_token'] . '&oauth_token_secret=' . $tokens['oauth_token_secret'];
             }
             break;
     }
     exit;
 }
Esempio n. 2
0
/**
 *
 * @param Request $request
 * @param PDO $ji_db
 * @return array
 */
function routeV2($request, $ji_db)
{
    $return_data = false;
    if (isset($request->parameters['oauth_version']) && $request->url_elements[2] != 'oauth') {
        $oauth_model = new OAuthModel();
        $oauth_model->in_flight = true;
        $oauth_model->setUpOAuthAndDb($ji_db);
        $request->user_id = $oauth_model->user_id;
    }
    // Route: call the handle() method of the class with the first URL element
    if (isset($request->url_elements[2])) {
        $class = ucfirst($request->url_elements[2]) . 'Controller';
        if (class_exists($class)) {
            $handler = new $class();
            $return_data = $handler->handle($request, $ji_db);
            // the DB is set by the database config
        } else {
            throw new Exception('Unknown controller ' . $request->url_elements[2], 400);
        }
    } else {
        throw new Exception('Request not understood', 404);
    }
    return $return_data;
}
Esempio n. 3
0
            $request->view = new JsonView();
            break;
    }
}
if (isset($request->url_elements[1])) {
    // check API version
    switch ($request->url_elements[1]) {
        case 'v2':
            // default routing
            break;
        default:
            throw new Exception('API version must be specified', 404);
            break;
    }
    if (isset($parameters['oauth_version']) && $request->url_elements[2] != 'oauth') {
        $oauth_model = new OAuthModel();
        $oauth_model->in_flight = true;
        $oauth_model->setUpOAuthAndDb($ji_db);
        $request->user_id = $oauth_model->user_id;
    }
    // Route: call the handle() method of the class with the first URL element
    if (isset($request->url_elements[2])) {
        $class = ucfirst($request->url_elements[2]) . 'Controller';
        if (class_exists($class)) {
            $handler = new $class();
            $return_data = $handler->handle($request, $ji_db);
            // the DB is set by the database config
        } else {
            throw new Exception('Unknown controller ' . $request->url_elements[2], 400);
        }
    } else {
Esempio n. 4
0
 public function identifyUser($db, $auth_header)
 {
     // identify the user
     $oauth_pieces = explode(' ', $auth_header);
     if (count($oauth_pieces) != 2) {
         throw new Exception('Invalid Authorization Header', '400');
     }
     if (strtolower($oauth_pieces[0]) != "oauth") {
         throw new Exception('Unknown Authorization Header Received', '400');
     }
     $oauth_model = new OAuthModel($db);
     $user_id = $oauth_model->verifyAccessToken($oauth_pieces[1]);
     $this->user_id = $user_id;
     return true;
 }