Estoy buscando construir algunas aplicaciones móviles. Por lo tanto, estas aplicaciones 'hablarán' a mi servidor a través de JSON y a través de REST (por ejemplo, poner, publicar, etc.).¿Cómo manejan las personas la autenticación de api RESTful (tecnología independiente)
Si quiero asegurarme de que una aplicación de teléfono del cliente está tratando de hacer algo que requiera un cierto "permiso", ¿cómo las personas manejan esto?
Por ejemplo:
Nuestro sitio web vende cosas -> TV, el coche de, vestidos, etc. La API permitan a la gente a navegar por la tienda y comprar artículos. Para comprar, necesita para estar 'conectado'. Necesito asegurarme de que la persona que está usando su teléfono móvil es realmente ellos.
¿Cómo se puede hacer esto?
He echado un vistazo a cómo Twitter lo hace con su OAuth ... y parece que tienen una serie de valores en una SOLICITUD PARA ENCUESTAR? Si es así (y me gusta este enfoque), ¿es posible que pueda usar otro tercero como el sitio web para almacenar el nombre de usuario/contraseña (por ejemplo, Twitter o Facebook son los proveedores de OAuth) ... y todo lo que hago es recuperar de alguna manera los datos del encabezado personalizado ... y asegúrese de que existan en mi db .. else ... ¿conseguir que se autentiquen con su proveedor de OAuth?
¿O hay otra manera?
PS. Realmente no me gusta la idea de tener una clave API. Siento que se puede entregar con demasiada facilidad a otra persona, para usarla (lo cual no podemos correr el riesgo).
Hay algunas excelentes respuestas a esta pregunta en: http://stackoverflow.com/questions/5511589/securing-an-api-ssl-http-basic-authentication-vs-signature, y http: // stackoverflow. com/questions/3358501/how-should-i-handle-authentication-in-my-rest-api. – David