У меня есть вариант использования, когда пользователь регистрируется для моей службы, а затем подтверждает их регистрацию по электронной почте. Проблема заключается в том, что мне нужно подождать, пока письмо не будет подтверждено, чтобы создать учетную запись (это внешнее требование, которое я не могу изменить), поэтому я должен где-то хранить пароль, чтобы он был доступен в виде обычного текста.Хранение пароля пользователя временно
Каков наилучший способ сделать это? Решение, которое приходит на ум, состоит в том, чтобы зашифровать его и сохранить в redis до тех пор, пока пользователь не будет аутентифицирован, затем создайте учетную запись и удалите запись redis.
Это лучший/самый безопасный способ сделать это?
Почему вы не можете хэширование + Посолите пароль и сохранить это значение? Если вы должны предоставить третьему лицу пароль, сделайте это, когда пользователь войдет в него, но не сохранит его как обычный текст. После того, как пользователь подтвердит учетную запись электронной почтой, вы можете создать свою учетную запись, используя хешированное + соленое значение пароля. Затем в будущих попытках проверки подлинности вы просто сравниваете значение, которое они вводит для пароля, с хешированным + соленого значения в вашей базе данных. – bsimic
@bsimic: Дело в том, что я пытаюсь не хранить их пароль вообще, ни в одной из моих баз данных. Кроме того, пользователь может получить доступ к внешней системе, не пройдя через меня, поэтому их пароль должен работать и с другой системой. – Falmarri
Предоставляет ли это третье лицо провайдер услуг OAuth? Если так, вы можете это сделать. Другой вариант - использовать что-то вроде Open ID (http://openid.net/), где вам вообще не нужно выполнять собственную аутентификацию. Вы можете видеть, как работает OpenID здесь http://www.windley.com/archives/2006/04/how_does_openid.shtml – bsimic