Как сохранить пароль пользователя в другом веб-приложении - PullRequest
1 голос
/ 04 апреля 2010

Я создаю веб-приложение, которое показывает пользователям интересную визуализацию их активности в Gmail (кому они чаще всего пишут по электронной почте и т. Д.). Очевидно, что пользователю необходимо дать мне свой пароль Gmail для использования приложения, и мне интересно, как мне его хранить:

  1. Храните пароль Gmail в текстовом виде. Рискованный!
  2. Не храните пароль Gmail вообще; заставлять пользователя вводить его каждый раз, когда он хочет синхронизировать данные. Потенциально неудобно!
  3. Зашифруйте пароль Gmail перед его сохранением. Пароль пользователя к моему приложению - это ключ.

Нечто подобное (3) кажется лучшим, но с (3) я могу синхронизировать данные только тогда, когда пользователь входит в систему (поскольку я не буду знать его пароль к моему приложению в любое другое время), что не идеально. Я бы предпочел Mint.com -подобное решение, при котором пользователь может в любое время нажать кнопку для синхронизации данных из Gmail без повторного ввода своего пароля (любая идея, как Mint выполняет это, не сохраняя свои банковские пароли ?)

Ответы [ 2 ]

7 голосов
/ 04 апреля 2010

По состоянию на 4 дня назад (хорошее время!) Gmail поддерживает OAuth для доступа к данным сообщения через IMAP.Это означает, что ваши приложения никогда не должны видеть пароли пользователей.Документация включает библиотеки и пример кода .

1 голос
/ 04 апреля 2010

Вы вступаете в очень рискованный бизнес по сбору учетных записей. Йодли осуществляет агрегирование аккаунтов для Mint, и фактически Mint не хранит банковские пароли, как предлагает WhirlWind. Монетный двор отправляет его Йодли, который может хранить или иметь какую-то безопасную интеграцию с банковскими учреждениями. Я советую не хранить пароли и разрешать пользователям вводить их каждый раз или использовать ограниченный OAUTH, который позволяет вам использовать Google. Не уверен, сможете ли вы получить всю свою аналитику из этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...