Leer claveAPI en url. PHP

Iniciado por OssoH, 30 Octubre 2014, 10:06 AM

0 Miembros y 1 Visitante están viendo este tema.

OssoH

Hola :
Quiero dentro de un fichero PHP recuperar la CLAVEAPI que le paso por URL y no sé cuál sería la forma correcta. Podría por PHP obtener la url y luego hacer un split de forma que pueda quedarme con la CLAVEAPI pero lo veo muy cutre. No hay forma más sencilla de hacerla?

Ejemplo de llamada
http://CLAVEAPI@mitienda.com/api/addresses

PHP
¿Como recupero el valor de claveapi?

Gracias


MinusFour

En ese punto de la url no creo que puedas sacarla tan facilmente. ¿Porque no utilizar GET? ¿o POST?

OssoH

Vi en páginas que el nombre de usuario lo ponían en esa parte para acceder a la url y tenía curiosidad por saber como se trabajaba de esta forma.
cómo tú dices lo hare por GET o POST
Gracias

#!drvy

Lo que estas diciendo tu se llama Autenticación de acceso básica vía HTTP.

Básicamente envías un header al navegador/cliente que pide que proporcione datos de acceso y los puedes recoger ya sea vía Apache o via PHP.

http://php.net/manual/es/features.http-auth.php




Un ejemplo seria:

Código (php) [Seleccionar]
<?php

if (!isset($_SERVER['PHP_AUTH_USER'])) {
    
header('WWW-Authenticate: Basic realm="Mi ervidor API"');
    
header('HTTP/1.0 401 Unauthorized');
    die(
'Debes introducir una clave API');
} else {

   
$clave_api $_SERVER['PHP_AUTH_USER'];
   die(
'La API que has introducido es: '.$clave_api);
}

?>



Código (url) [Seleccionar]
http://miclaveapi@mitienda.com/api/addresses/prueba.php

Pero nótese que ese no es el propósito con el que fue creado. Realmente fue pensado para proporcionar usuario y contraseña.

http://www.httpwatch.com/httpgallery/authentication/

Saludos

alex171294

drvy muy interesante, si bien fueron diseñadas para usuario y contraseña, la cifrado que tiene a la hora de enviar la información es light (un hash base64), no me parece mal que lo use para un api key.

estaba observando que en formato enlace la petición se hace

usuario@dominio.com/recurso

y donde se pondría la contraseña si fuera en url?

saludos!

#!drvy

#5
Citarla cifrado que tiene a la hora de enviar la información es light (un hash base64)

Si así es.. es bastante light xD. Aunque es raro verlo en servicios como GMAIL xD

Código (url) [Seleccionar]
http://usuarioSinArroba:contraseñaSinBase64@mail.google.com/mail/feed/atom


Citary donde se pondría la contraseña si fuera en url?

Después del usuario se añaden : (dos puntos) y se pone la contraseña seguida de @dominio.

Tipo lo que puse arriba.

Saludos

alex171294

Cita de: #!drvy en  5 Noviembre 2014, 18:39 PM
Si así es.. es bastante light xD. Aunque es raro verlo en servicios como GMAIL xD

Código (url) [Seleccionar]
http://usuarioSinArroba:contraseñaSinBase64@mail.google.com/mail/feed/atom


Después del usuario se añaden : (dos puntos) y se pone la contraseña seguida de @dominio.

Tipo lo que puse arriba.

Saludos

muy interesante, jamás lo había visto en práctica (salvo aparentemente en CPanel de los hostings)

#!drvy

Si la verdad es que no se suele ver mucho.. creo recordar que los directorios protegidos de apache funcionaban con el mismo principio..

Yo la primera vez que lo vi fue en un script en python para obtener los correos no leídos de gmail xD

Saludos