es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Puedo realizar una tarea en la aplicación Main iOS desde la Extensión de la aplicación?

Tengo una extensión de aplicación para Compartir (Share Extension) y cuando un usuario selecciona mi aplicación para compartir una imagen, mi aplicación enviará esa imagen a un servidor.

El problema es que el servidor requiere una identidad autenticada (AWS Cognito) para enviar el objeto al servidor. Como no puedo compartir la autenticación de mi aplicación principal con mi extensión y no quiero que el usuario inicie sesión cada vez que quiera compartir, estoy atrapado.

Puedo ver que esto se hace con aplicaciones de mensajería donde un usuario envía un mensaje desde una extensión de uso compartido. No estoy seguro de cómo lo logran. Como no se le pide al usuario que inicie sesión nuevamente en la extensión, de alguna manera las credenciales se comparten con la extensión o la aplicación se lanza momentáneamente para realizar esa carga mientras permanece en segundo plano (no estoy seguro de si esto es posible).

Entonces, mi pregunta es cuál es el enfoque que debería estar usando. ¿Debería la extensión dirigir de alguna manera a la aplicación principal para cargar la imagen, o debería encontrar una manera de compartir los tokens de acceso con la extensión de manera segura y acceder a ellos sin ninguna acción del usuario?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Hay algunas formas de abordar este problema.

    Una solución potencial es utilizar un grupo de llavero compartido para compartir la autenticación entre tu aplicación principal y la extensión. Esto te permitiría almacenar de forma segura las credenciales de autenticación del usuario en el llavero y acceder a ellas desde tu aplicación principal y tu extensión.

    Otra solución potencial es utilizar un Token Web JSON (JWT) para autenticar al usuario en tu extensión. Puedes generar un JWT en tu aplicación principal y pasarlo a tu extensión, la cual luego puede utilizarlo para autenticar solicitudes a tu servidor.

    También podrías considerar la implementación de un flujo de autenticación “silencioso”, donde tu aplicación principal actualiza periódicamente el token de autenticación del usuario en segundo plano. Esto permitiría que tu extensión haga solicitudes autenticadas sin requerir que el usuario se vuelva a autenticar.

    En última instancia, el enfoque que elijas dependerá de los requisitos y limitaciones específicas de tu aplicación. Es importante asegurarse de que cualquier solución que implementes sea segura y no comprometa la privacidad o seguridad del usuario.

Comments are closed.