¿Cuál es la mejor manera de hacer la autenticación de Twitter OAuth de forma segura en JavaScript?Autenticación segura de Twitter OAuth en JavaScript/jQuery (más ayudante del lado del servidor)
Estoy tratando de escribir un programa para que el usuario pueda analizar su uso de Twitter y seguidores/amigos. Escribí una versión del servidor que funciona con el módulo python tweepy.
Me gustaría compartirlo con la gente, pero me gustaría que se ejecute en el navegador para que sea escalable en lugar de ejecutarse en mi pequeño servidor.
veo otra pregunta donde el resultado es que no es recomendable y no es seguro: JavaScript OAuth sign in with Twitter
lo cual tiene sentido si se estaban enviando el secreto (app) de los consumidores o de acceso secreto (usuario) en JavaScript de la aplicación.
Pero por qué no podría construir la URL en el servidor como aquí - http://djangosnippets.org/snippets/1353/
luego enviar el URL de autenticación de vuelta al navegador, algo así de la herramienta de OAuth en la página de Twitter Mis aplicaciones (no credenciales válidas)
GET & https% 3A% 2F% 2Fapi.twitter.com% 2F1% 2F% & obtener 252Faccount% 252Fverify_credentials_json% 3D% 26oauth_consumer_key% GD0bgcgMU4MDwNfKQpLFQS3% 26oauth_nonce% 3D24ad5049501dee1292afd8cf22307d68% 26oauth_signature_method% 3DHMAC-SHA1% 26oauth_timestamp% 3D1329173626 % 26oauth_token% uPUpxsBc3D283768289LtQ6R1E z1KeD8DOSsm5XpqJaKI28ysYh% 26oauth_version% 3D1.0
Luego use jQuery para autenticarse con las credenciales del usuario y ejecutar el análisis.
Es un trabajo importante, odiaría hacer eso y luego descubrir que no funciona o es un enfoque inseguro. (o ya está hecho)
¿Eso es seguro? No parece exponer ningún secreto.
¿Funcionará eso?
Cualquier punteros/ejemplos sobre la forma correcta de hacer la autenticación para un jQuery noob, con la Autorización necesaria: cabecera y procesamiento de cookies/redireccionamiento?
Siento que me falta algo y o bien hay una razón por la que esto no funcionará, o debería existir en alguna parte, pero no lo he encontrado. ¡Muchas gracias!
. Creo que el punto de dividir la clave del consumidor y el secreto del consumidor es que usted podría exponer la clave, y nadie puede hacer nada sin el secreto. ¿Qué podría hacer alguien con solo la clave del consumidor, si no tenían el secreto del consumidor? –
Sí, tienes razón. Lo que esencialmente propones es que tu servidor firme usando su secreto de consumidor, y luego se lo devuelve al cliente. Puede hacerlo, pero no es más escalable que simplemente hacer que su servidor realice la solicitud en nombre del usuario. – Alan
Sí, básicamente quiero proxy la autenticación, y luego hacer que el navegador haga un montón de llamadas API. Van a ser unos pocos cientos de llamadas, hasta los límites de aceleración. Además, tomarán mucho tiempo y atan los recursos mientras se ejecutan. Así que realmente prefiero no hacerlo en el servidor, serán órdenes de magnitud de más carga. Me gustaría transferir una URL o un token al navegador y luego usar eso para hacer llamadas a la API con jQuery o JavaScript puro. –