2011-06-14 16 views
13

Estoy escribiendo una aplicación para iPhone que usa Facebook extensamente. En este momento, obtengo el token de acceso usando el Facebook SDK de Facebook. Esto me devuelve un token de acceso estándar.Facebook: envío de un servidor de token de acceso iOS y firma con App Secret

Enviaré este token del lado del servidor y lo usaré para muchas consultas con éxito. Sin embargo, hay algunas consultas que requieren un token de acceso firmado con Application Secret, que la aplicación de iPhone sdk no puede hacer desde el lado del cliente debido a vulnerabilidades de seguridad (específicamente, estoy tratando de usar métodos de panel de control).

Así que mi pregunta es: ¿hay alguna manera de que Facebook pueda actualizar este token de acceso de iPhone del lado del servidor para contener el secreto firmado? ¿O tengo que validar el lado del servidor desde el principio para hacer esto?

Los documentos dicen que con el método 'Server-side flow', una vez que el usuario permite su aplicación, obtiene un código generado por el servidor que debe enviar de vuelta con su App Secret para obtener su token de acceso. El SDK de iPhone usa el método 'Flujo del lado del cliente', y parece omitir este paso, por lo que no estoy seguro de cómo obtener este código. Así que supongo que la pregunta se reduce a, ¿es posible actualizar un token obtenido con el método de "flujo del lado del cliente" a uno que se puede utilizar completamente en el lado del servidor.

+1

Esto no es una respuesta, sino una solución: lo resolví creando mi propio inicio de sesión que pasa por un UIWebView enrutado a través de mi servidor, que maneja la autenticación. De esta forma, puedo usar mi secreto de forma segura para obtener las credenciales que necesito. –

+0

HI Shaun, acabo de empezar a trabajar en un proyecto que requiere que tenga un inicio de sesión en el lado del servidor en la aplicación iphone. Me pregunto si usa UIWebView para presentar el inicio de sesión del lado del servidor, ¿cómo sabe que el inicio de sesión ha tenido éxito o ha fallado? ¿Algún enlace o sugerencia? ¡Gracias! – mkto

Respuesta

7

La respuesta es no.

Los tokens de aplicación y token de usuario son diferentes y no se puede convertir uno al otro.

Como tiene una aplicación cliente, no recomiendo que incruste su aplicación en secreto (como usted señala).

Para su aplicación, le recomiendo que cree una página web en un servidor que controle que recibe y use el token de la aplicación que realiza las llamadas que desea.

Cuestiones relacionadas