Я рассматриваю возможность разработки приложения с использованием Yodlee FinApp API.
Их протокол REST требует от вас входа ваших пользователей в их систему для получения данных. Для этого вам необходимо отправить логин и пароль. Успешный запрос возвращает вам токен, действительный в течение 30 минут. До истечения этих 30 минут вы должны снова войти в систему, чтобы получить новый токен. Вот в чем проблема, на мой взгляд.
Я мог бы настроить что-то, что каждый раз, когда пользователь входит в мое приложение, я немедленно отправляю его данные для входа и пароль в Yodlee и также регистрирую их там. Тогда мне не нужно было бы хранить их пароль в моей базе данных в виде обычного текста. Но что произойдет, когда 30 минут истекут? На самом деле я не «знаю» их пароль, поэтому я не могу получить им новый токен и потребую, чтобы они снова вошли в систему. Было бы очень неприятно, если бы пользователям постоянно приходилось заходить в систему каждые 30 минут.
В качестве альтернативы я мог бы сгенерировать для них собственный пароль, когда они зарегистрируются в моем приложении, и использовать его для взаимодействия моего приложения с Yodlee. Но тогда у меня есть их пароль Yodlee, хранящийся в моей базе данных в виде простого текста. Предполагая, что кто-то сможет получить доступ к моему серверу, у него будут учетные данные моего приложения, а также все учетные данные пользователя, поэтому они смогут имитировать процесс входа в мое приложение и получить доступ к транзакциям пользователей. Это кажется плохой идеей.
Какой здесь правильный подход? Кажется, что у обоих способов, которые я исследую, есть серьезные недостатки, но, может быть, я упускаю другой вариант?