ruby-on-rails – 为第三方服务存储密码
发布时间:2020-12-16 19:05:58 所属栏目:百科 来源:网络整理
导读:我的应用程序是 ruby-on-rails,但我希望这个问题的任何答案都可能与框架无关. 我的应用程序使用rails ActionMailers a-la通过gmail SMTP发送电子邮件: mail = MyActionMailerSubclass.setup_emailoptions = { :address = "smtp.gmail.com",:port = 587,:dom
我的应用程序是
ruby-on-rails,但我希望这个问题的任何答案都可能与框架无关.
我的应用程序使用rails ActionMailers a-la通过gmail SMTP发送电子邮件: mail = MyActionMailerSubclass.setup_email options = { :address => "smtp.gmail.com",:port => 587,:domain => 'mydomain.com',:user_name => 'myuser@mydomain.com',:password => 's3cur3p@s$w0rd',:authentication => 'plain',:enable_starttls_auto => true } mail.delivery_method :smtp,options mail.deliver 好的,那很好……我的应用程序代码中有纯文本密码.或者我可以用纯文本将其存储在数据库中.显然两者都是不可接受的. Salting和hashing,通常的技术不会在这里工作,因为我需要将密码发送到gmail. 那么,为第三方服务保护密码有哪些策略? 最终用户名和密码甚至不属于我,它们将属于应用程序最终用户. 解决方法
Gmail的SMTP服务器支持两种身份验证机制:PLAIN和XOAUTH. PLAIN机制要求您知道用户的明文密码,我很高兴您不准备存储这些密码.
请查看Gmail使用的OAuth协议.我还没有使用它,我发现Gmail支持SMTP,所以我不能再帮助了,但我会说这正是你想要的. OAuth是一种服务(例如Gmail)允许第三方服务(例如您的)代表用户执行一组有限操作而无需使用其密码登录的方式. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |