Что мне нужно, так это: когда пользователь входит в приложение 1, приложение сохраняет токены в общей папке (например). Когда тот же пользователь открывает приложение 2, оно проверяет, существуют ли эти токены. Если они это сделают, приложение 2 будет использовать обновить_токен для получения нового access_token, если текущий недействителен.
что я уже пробовал:
- Внешние библиотеки: я оценивал существующие библиотеки, такие как Reaction-native-shared-group-preferences, но они полагаются на Внешнее хранилище (общедоступные папки) Андроид. Это угроза безопасности для токенов аутентификации, которая устарела в современных версиях Android (SDK 30+).
- Стандарты шифрования. Первоначально я столкнулся с проблемами расшифровки токенов, поскольку Cordova и React Native используют разные преобразования шифрования по умолчанию. Мне пришлось вручную переопределить реализацию React Native, чтобы использовать RSA/ECB/PKCS1Padding, чтобы устаревший Java-код Cordova мог успешно расшифровать данные.
- Обслуживание плагинов: Я обнаружил, что большинство плагинов Cordova KeyStore не обновлялись более 6 лет. Мне пришлось вручную исправить код Java для поддержки контекстаsharedUserId, а это значит, что нам нужно будет поддерживать локальную вилку плагина в течение этого периода миграции.
- Native Bridge: я пришел к выводу, что собственный Native Module в React Native — единственный надежный способ использовать createPackageContext для безопасного доступа к Cordova SharedPreferences без раскрытия данных остальной части ОС."