2012-02-05 8 views
5

Necesito crear una aplicación basada en servidor (php) con iOS cliente con authintication "login" mechanisim pero no sé acerca de la sesión en iOS. Mi aplicación necesita iniciar sesión en mi sitio web (sitio web basado en PHP) para obtener datos. No sé si la sesión para el cliente iPhone está guardada en el servidor.Aplicación con gestión de sesión en el servidor

Detalles:

Después de enviar la solicitud de inicio de sesión de cliente de iPhone a mi aplicación web, creo que aquí se crea una sesión en mi aplicación web (¿verdad?), ¿Qué pasa con mi siguiente petición? ¿puedo acceder a la misma sesión creada para la primera solicitud? En otra palabra: ¿puedo compartir datos en la sesión web (en el servidor) para acceder a cada solicitud enviada por el cliente de iOS después de iniciar sesión?

+0

Aplicación de iOS basada en servidor PHP, no tiene sentido ... – craig1231

+6

Sí, lo hace, no seas pedante. Obviamente, se refiere a una aplicación de iOS que actúa como un cliente que habla con un servidor de back-end escrito en PHP. –

+0

Estimado Yahia, Gracias por su consejo, ¿podría aclarar su comentario – Saeed

Respuesta

18

Las sesiones son un concepto del lado del servidor: no hay sesión en el lado del cliente.

Lo que normalmente ocurre es que el servidor establece una cookie en los encabezados de respuesta después de iniciar sesión, y esa cookie contiene la ID de sesión para que en las solicitudes posteriores el servidor sepa que el cliente está usando esa sesión porque coincide La galleta.

Las cookies funcionan automáticamente en iOS, por lo que no debería tener que hacer nada en absoluto. Las solicitudes NSURL tienen una propiedad HTTPShouldHandleCookies que tiene el valor predeterminado de SÍ, por lo que todo debería funcionar de manera predeterminada.

Si no está funcionando (o si solo quiere ver lo que está pasando), puede obtener acceso a las cookies en iOS utilizando las API NSHTTPCookieStorage. Eche un vistazo al [NSHTTPCookieStorage sharedHTTPCookieStorage], que funciona como un NSDictionary. Ahí es donde se debe configurar la cookie de sesión después de iniciar sesión.

+0

+1 para una respuesta completamente correcta. Solo una adición, la sesión * no * debe mantenerse usando cookies, también podría ser un parámetro get, dependiendo de la configuración del servidor/PHP. – Till

+0

Sí, eso es cierto. Decidí omitir eso de la respuesta para evitar complicar las cosas, pero es un punto válido. –

+0

+1 esto es fantástico, esto es exactamente lo que necesitaba leer también, ¡salud! –

Cuestiones relacionadas