2010-09-09 11 views
6

Estoy trabajando en el desarrollo de una aplicación nativa de Android para recuperar datos de un usuario del sitio web de mi compañía.¿Cómo se autentica una aplicación nativa de Android con el back-end web?

Como los datos son específicos del usuario, necesito autenticarme con nuestro servidor web, pero no estoy seguro de cuál es la mejor manera de hacerlo. He estado leyendo sobre AUTH de REST/SOAP/HTML, pero realmente no puedo encontrar ningún 'así es como se hace definitivamente' en ninguna parte. Sé que las aplicaciones móviles hacen este tipo de cosas todo el tiempo, solo mire Facebook/skype/cualquier aplicación de correo electrónico, debe iniciar sesión antes de poder hacer nada.

Mi pregunta es - ¿cómo debo diseñar el código del lado del servidor (php) para permitirme fácilmente autenticar a un usuario de mi dispositivo Android?

Soy bastante nuevo en el campo del "servicio web": ¿entra esto en esa categoría? ¿Hay algún tutorial que ustedes recomendarían mirar?

Gracias!

+0

Se puede servir todas las páginas a través de HTTPS (SSL/TLS), proporcione las credenciales de usuario de Android a la API a través de HTTP Basic Auth, y use '$ _SERVER ['PHP_AUTH_USER']' y '$ _SERVER ['PHP_AUTH_PW']' con https://github.com/delight-im/PHP -Auth en la API en cada solicitud. Eso debería ser bastante simple de implementar y razonablemente seguro. – caw

Respuesta

5

Aunque no he desarrollado para Android, puedo sugerir que simplemente confíe en algún esquema de autenticación sin estado, como HTTP Basic o Digest. Esto significa que las credenciales se aprobarán con todas y cada una de las solicitudes, y evitará tener que hacer un seguimiento del estado, lo que significa que puede mantener su API buena y RESTful.

Sospecho que si estuviera escribiendo una aplicación de Android, en la mayoría de los casos, probablemente primero trataría de que la comunicación funcione con algo al menos vagamente RESTful, usando HTTP Basic auth y codificación JSON (solo porque PHP hace (de) serializar JSON tan fácil).

Por supuesto, dependiendo del dominio de su problema, puede que no sea lo ideal, pero es una buena arquitectura para probar primero, porque es bastante fácil. Si le falla, puede volver atrás y comenzar a intercambiar partes, hasta que encuentre la arquitectura correcta.

+0

¡Muchas gracias! Este es un gran lugar para comenzar. Escuché que JSON es bastante fácil de analizar en el lado Android de las cosas también. –

1

Algunas aplicaciones móviles usan OAuth para autenticarse con un servidor web, como twitter. Puede que esto no sea exactamente lo que estás buscando, pero no obstante, aquí tienes un ejemplo: iniciar sesión en el servicio web y autenticar la aplicación móvil (que habría solicitado acceso) para poder utilizar tus datos en la web. servicio, como una clave de acceso (realmente llamada token) con la cual la aplicación móvil luego utiliza para comunicarse con el servicio web en su nombre; el token podría pasarse como parte de la url. Es probable que desee considerar SSL o algún nivel de cifrado.

This puesto también puede ser de ayuda para usted

Cuestiones relacionadas