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; }
// 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;