Держите пользователя вошедшим в приложение React Native навсегда - PullRequest
0 голосов
/ 06 сентября 2018

Я пытаюсь найти наилучший способ, чтобы пользователи входили в мое приложение RN после входа в систему, пока они не удалят приложение.

Я использую серверную часть Node / Express, которая принимает JWT с каждым запросом, и мой единственный план на данный момент - отправить JWT с неограниченным сроком действия при входе в систему и сохранить его на постоянной основе с помощью AsyncStorage.

Это инстинктивно кажется небезопасным, но я не специалист по безопасности и токенам. В настоящее время я использую Expo для запуска своего приложения RN, но в будущем я планирую «извлечь» его, и как только я это сделаю, я смогу сохранить его более надежно, используя response-native-keychain, но он все равно будет JWT, который никогда не истекает.

Мое приложение spotify никогда не просит меня войти в систему, так что я знаю, что я пытаюсь сделать, это не сумасшествие.

Но есть ли лучший способ?

1 Ответ

0 голосов
/ 06 сентября 2018

Не следует использовать долгосрочные JWT , поскольку их можно легко взломать, если используемые секретные ключи являются слабыми или короткими.

Существуют некоторые из доступных библиотек, которые могут помочь вам отследить длительность перебора, при которой можно взломать JWT , например jwt-cracker, c-jwt-cracker.

Поэтому вы должны использовать SecureStore , уже доступный в Expo SDK . IOS значения хранятся с использованием сервисов цепочки для ключей и Android значения хранятся в SharedPreferences , зашифрованных с помощью Android's Keystore system .

Если в API , использующем токен, есть ошибка, вы можете просто позвонить либо , повторно подтвердить подлинность , либо обновить , используя перехватчики

...