Autenticar credenciales recibidas desde facebook en mi propia API REST
Mi equipo y yo estamos trabajando en una red social móvil nativa para Android que permite a los usuarios iniciar sesión con Facebook. Ive logró implementar el SDK de Facebook para Android, pero estoy luchando para averiguar cómo autenticar correctamente / de forma segura a un usuario que inicie sesión usando Facebook con las credenciales recibidas de Facebook solo. Actualmente aquí es cómo mi sistema va:
Paso 1.Desde el cliente de Android, el usuario presiona iniciar sesión con Facebook y concede permisos a mi aplicación.
- Obtener tiempo de caducidad de token de acceso de Google en Android
- Google http / oauth2 api siempre lanza EOFException para segundo HTTPRequest
- C2DM con PHP usando OAuth2.0 (ClientLogin está obsoleto!)
- Autenticación de coordenadas de Google
- Autenticar mi "aplicación" en Google Cloud Endpoints no es un "usuario"
Paso 2. Cuando el usuario conceda nuestros permisos, Facebook nos envía una respuesta que incluye la identificación de usuario de los usuarios fb, correo electrónico y un token (entre otros datos, si es la primera vez que el usuario ha iniciado sesión con Facebook)
Paso 3. Se envía información a nuestra API para autenticación
Y esto es donde im un poco claro …. ¿Cómo puedo validar las credenciales de facebook en mi servidor?
A partir de ahora im acaba de comprobar mi db para un usuario existente con el fb_uid y fb_email recibido, pero nadie puede obtener anyones fb_uid y no es mucho más difícil encontrar el correo electrónico que utilizaron para registrarse en facebook que significa que alguien hipotéticamente podría fácilmente hackear Otra cuenta de usuarios con una solicitud falsa http.
- Librería / marco apropiado de Oauth2 del androide
- ¿Por qué el método GoogleAuthUtil.getToken () genera dos tipos de tokens?
- No se redirecciona a la URL de devolución de llamada al autenticarse en Instagram
- ¿Cómo acceder a la nueva API de Gmail desde mi aplicación de Android?
- Seguridad de Primavera Angularjs + Android REST
- ¿Cómo evitar mostrar la pantalla de consentimiento en nuestras propias aplicaciones nativas cuando la autenticación externa?
- ¿Cómo desconectar un usuario de Google en mi aplicación de Android en botón Haga clic en Java?
- Cómo implementar un proceso de token de renovación con JWT para aplicaciones de Android
El access_token
, si es válido, le permitirá acceder a algunos de los datos de Facebook de usuarios a los que su aplicación ha solicitado permiso de acceso. Una forma de validar que las credenciales que está recibiendo son correctas es usar ese access_token
para consultar a Facebook.
Por ejemplo, esta página sugiere cómo abrir las propiedades access_token
mediante una llamada GET
:
GET graph.facebook.com/debug_token? input_token={token-to-inspect} &access_token={app-token-or-admin-token}
Que luego devuelve:
{ "data": { "app_id": 138483919580948, "application": "Social Cafe", "expires_at": 1352419328, "is_valid": true, "issued_at": 1347235328, "metadata": { "sso": "iphone-safari" }, "scopes": [ "email", "publish_actions" ], "user_id": 1207059 } }
- Android: pasando el objeto JSON desde webview javascript a java
- Custom onInterceptTouchEvent en ListView