Как поделиться сеансом входа в Parse с расширением iOS?

При написании расширения iOS для приложения можно ли поделиться текущим сеансом входа в Parse приложения с расширением iOS?

Расширения iOS связаны с приложениями iOS, но запускаются в отдельных контейнерах. Поэтому, когда пользователь вошел в приложение, расширение не может получить доступ к этому экземпляру Parse. Если расширение снова войдет в систему, оно создаст дополнительный сеанс входа для пользователя.

Однако расширение может совместно использовать общий контейнер данных с приложением. Поэтому мне интересно, можно ли сохранить PFSession.sessionToken в общем контейнере и позволить расширению взаимодействовать с сервером Parse на основе этого существующего сеанса без необходимости входа в систему?


person Manuel    schedule 18.03.2018    source источник


Ответы (1)


Есть два возможных решения:

А) Элегантный подход

Включите локальный обмен данными, который обеспечивает обмен постоянными данными между основным приложением iOS и его расширениями.

// Enable data sharing in main app.
Parse.enableDataSharingWithApplicationGroupIdentifier("...")

// Enable data sharing in app extensions.
Parse.enableDataSharingWithApplicationGroupIdentifier("...", containingApplicaiton: "...")

Совместное использование локальных данных в Parse SDK позволяет вам обмениваться постоянными локальными данными между вашим основным приложением и расширениями, которые оно содержит, включая расширения Keyboard, Share/Today/Photo/Action и Document Providers.

Как описано в документах.

Б) Ручной подход

После входа в приложение сохраните токен сеанса Parse PFUser.current().sessionToken в зашифрованном общем контейнере данных.

Затем расширение может получить доступ к токену сеанса и продолжить сеанс с помощью PFUser.become(sessionToken:).

person Manuel    schedule 19.03.2018
comment
SDK поддерживает совместное использование данных IIRC, см.: docs.parseplatform.org/ios/guide/ #app-расширения - person flovilmart; 19.03.2018