PHP - Consumir webservice con Authorization: Bearer

 
Vista:
sin imagen de perfil

Consumir webservice con Authorization: Bearer

Publicado por John (1 intervención) el 17/03/2023 17:44:41
engo que consumir un webservice en el que el primer paso es iniciar sesión con usuario y contraseña en url http://domain/login , al iniciar sesión me devuelve lo siguiente en formato json

{ "payload": {"id_sesion": 903003563}, "exp": 1528992412, "aud": "poliza", "token": "eyJhbGciOiJSUzUxMiJ9.e" }

Esta conexión funciona correctamente, pero cuando me conecto a http://domain/list, pasando las variables id_session y el token para la autenticación del portador, devuelve {"error":"auth required"}".

Lo probé en otro idioma funciona correctamente, pero en php no.

paso el codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
		$curl = curl_init('https://dominio-com/login');
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt( $curl, CURLOPT_FOLLOWLOCATION, true );
        curl_setopt($curl, CURLOPT_POST, true);/** Autorizamos enviar datos*/
        $name = 'user123';
        $pass = 'asfsdfsa';
        $my_user = array(
          "p_usuario"=> $name,
          "p_enc_pwd"=> $pass
          );
          $payload = json_encode($my_user);/** convertimos los datos en el formato solicitado normalmente json*/
          curl_setopt($curl, CURLOPT_POSTFIELDS, $payload);
          curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
          $result = curl_exec($curl);/** Ejecutamos petición*/
          curl_close($curl);
 
		  $mJSON=json_decode($result);
 
		$p_o_sesion = $mJSON->payload->p_o_sesion;
		$token = $mJSON->token;
		$p_cod_prod = 99527;
		$p_fec_desde = "2019-01-01";
		$p_fec_hasta = "2023-01-31";
 
 
 		 $listarpoliza = array(
          "p_o_sesion"=> $p_o_sesion,
          "p_cod_prod"=> $p_cod_prod,
		  "p_fec_desde"=> $p_fec_desde,
		  "p_fec_hasta"=> $p_fec_hasta
         );
          $payload = json_encode($listarpoliza);
 
		$curl = curl_init('https://dominio.com/LISTAR');/** Ingresamos la url de la api o servicio a consumir */
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt( $curl, CURLOPT_FOLLOWLOCATION, true );
        curl_setopt($curl, CURLOPT_POST, true);/** Autorizamos enviar datos*/
        curl_setopt($curl, CURLOPT_POSTFIELDS, $payload);
 
          $result = curl_exec($curl);/** Ejecutamos petición*/
          curl_close($curl);
 
 
		 var_dump($result);
 
 
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Consumir webservice con Authorization: Bearer

Publicado por Alejandro (839 intervenciones) el 21/03/2023 17:02:24
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
Te hace falta enviar el token, algo como esto:
1
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer '.$token]);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar