rest - keywords - Coloque la clave API en encabezados o URL
meta keywords (5)
Al pasar la clave de la API a los parámetros, a los clientes les resulta difícil mantener sus API API en secreto, y tienden a tener fugas de claves con regularidad. Un mejor enfoque es pasarlo en el encabezado de url de solicitud. Puede establecer encabezado de clave de usuario en su código. Para probar su Url de solicitud puede usar la aplicación Postman en google chrome estableciendo el encabezado de la clave de usuario en su api-key.
Estoy diseñando una API pública para los datos de mi empresa. Queremos que los desarrolladores de aplicaciones se registren en una clave API para que podamos monitorear el uso y el uso excesivo.
Como la API es REST, mi idea inicial es poner esta clave en un encabezado personalizado. Así es como he visto a Google, Amazon y Yahoo hacerlo. Mi jefe, por otro lado, piensa que la API es más fácil de usar si la clave se convierte simplemente en una parte de la URL, etc. " http://api.domain.tld/longapikey1234/resource ". Supongo que hay algo que decir al respecto, pero viola el principio de la URL como una dirección simple de lo que quiere, y no cómo o por qué lo quiere.
¿Le parece lógico poner la llave en la URL? ¿O prefieres no tener que configurar manualmente los encabezados HTTP si escribes una interfaz simple de JavaScript para algunos datos?
Debe colocarse en el encabezado Autorización HTTP. La especificación está aquí https://tools.ietf.org/html/rfc7235
Es mejor utilizar la clave de la API en el encabezado, no en la URL.
Las URL se guardan en el historial del navegador si se intenta desde el navegador. Es un escenario muy raro. Pero el problema surge cuando el servidor de back-end registra todas las URL. Podría exponer la clave API.
De dos maneras, puede usar la clave API en el encabezado
Autorización básica:
Ejemplo de stripe:
curl https://api.stripe.com/v1/charges -u sk_test_BQokikJOvBiI2HlWgH4olfQ2:
curl usa el distintivo -u para pasar las credenciales de autenticación básicas (al agregar dos puntos después de que la clave de API evite que te pida una contraseña).
Cabecera personalizada
curl -H "X-API-KEY: 6fa741de1bdd1d91830ba" https://api.mydomain.com/v1/users
No pondría la llave en la url, ya que viola este "estándar" suelto que es REST. Sin embargo, si lo hiciera, lo colocaría en la parte de "usuario" de la url.
Por ejemplo: http://[email protected]/myresource/myid
De esta manera, también se puede pasar como encabezados con autenticación básica.
Si desea un argumento que pueda atraer a un jefe: piense en qué es una URL. Las URL son públicas. La gente los copia y pega. Los comparten, los ponen en publicidades. Nada impide que alguien (a sabiendas o no) envíe por correo esa URL para que otras personas la utilicen. Si su clave API está en esa URL, todos la tienen.