una tutorial sirve restful qué protocol para español entre ejemplo diferencia arquitectura web-services api rest

web-services - tutorial - web service rest



Asegurando una API REST con Facebook OAuth (2)

Estoy haciendo lo mismo y mi solución es hacer coincidir las direcciones de correo electrónico que recibe de estas API respectivas.

Para Facebook, necesita un permiso especial del usuario final para obtener la dirección de correo electrónico registrada allí. Para ello, agregue &scope=email a la primera solicitud de envío.

Una desventaja es que necesita obtener este permiso del usuario final y pueden rechazarlo. Otra desventaja es que los usuarios necesitan usar las mismas direcciones de correo electrónico para Google, Facebook y Twitter.

Una ventaja es que los registros de los usuarios se combinan automáticamente, por lo que los usuarios pueden acceder directamente a todos sus datos si se registran por primera vez a través de Google y la segunda vez a través de Facebook.

Otro enfoque sería combinar manualmente sus datos haciéndolos iniciar sesión en Google cuando ya hayan iniciado sesión a través de Facebook. Luego, puede concluir que son el mismo usuario, incluso cuando usan direcciones de correo electrónico diferentes para ambos. Pero este es un enfoque más tedioso, ya que aún necesita combinar los datos de usuario de la aplicación de ambas cuentas.

Estoy creando una aplicación / API que permite al usuario iniciar sesión con Facebook, Twitter o Google. Me pregunto cuáles son las mejores prácticas para permitir que esos usuarios usen la misma cuenta para iniciar sesión en la API.

  1. Un par de ideas que he tenido es pasar el token / cookie de autenticación en un encabezado a la API para cada solicitud y usarlo para autenticarse en el servidor.
  2. Ejecutar mi propia configuración de OAuth y hacer que el usuario se autentique una vez con el back-end para obtener mi token de OAuth y usarlos desde ese momento.

Tu primera solución es exactamente la forma en que lo hago. Como todos mis servicios de descanso son sin estado, el token de acceso va en el encabezado y es analizado por los filtros de autenticación de seguridad Spring en cada solicitud. Utilizo un servidor Grails con el complemento spring-security-oauth. También ejecutamos un sitio web que permite el uso de cookies de sesión para el acceso basado en navegador.