protected function uma_permission_request($resource_set_id = null, $scopes = null)
 {
     $open_id_url = str_replace('/nosh', '/uma-server-webapp/', URL::to('/'));
     $practice = DB::table('practiceinfo')->where('practice_id', '=', '1')->first();
     $client_id = $practice->uma_client_id;
     $client_secret = $practice->uma_client_secret;
     $oidc = new OpenIDConnectClient($open_id_url, $client_id, $client_secret);
     $oidc->refresh($practice->uma_refresh_token, true);
     $response = $oidc->permission_request($resource_set_id, $scopes);
     return $response;
 }
Exemple #2
0
     // No RPT, Request Permission Ticket
     $url = Request::url();
     $query = DB::table('uma')->where('scope', '=', $url)->first();
     $as_uri = str_replace('/nosh', '/uma-server-webapp/', URL::to('/'));
     $header = ['WWW-Authenticate' => 'UMA realm = "pNOSH_UMA", as_uri = "' . $as_uri . '"'];
     $statusCode = 403;
     if ($query) {
         // Look for additional scopes for resource_set_id
         $query1 = DB::table('uma')->where('resource_set_id', '=', $query->resource_set_id)->get();
         $scopes = array();
         foreach ($query1 as $row1) {
             $scopes[] = $row1->scope;
         }
         $oidc = new OpenIDConnectClient($open_id_url, $client_id, $client_secret);
         $oidc->refresh($practice->uma_refresh_token, true);
         $permission_ticket = $oidc->permission_request($query->resource_set_id, $scopes);
         if (isset($permission_ticket['error'])) {
             $response = ['error' => $permission_ticket['error'], 'error_description' => $permission_ticket['error_description']];
         } else {
             $response = ['ticket' => $permission_ticket['ticket']];
         }
     } else {
         $response = ['error' => 'invalid_scope', 'error_description' => 'At least one of the scopes included in the request was not registered previously by this resource server.'];
     }
     return Response::json($response, $statusCode, $header);
 }
 //$payload = Request::header('X-Auth-Token');
 //$user =  DB::table('users')->where('oauth_token', '=', $payload)->where('oauth_token_secret', '>', time())->first();
 //if(!$payload || !$user) {
 //$statusCode = 401;
 //$response['error'] = true;