不久前我在这里问了一个类似的问题,但所有答案都提供了 OpenID,这很好,但它不适用于需要身份验证但不使用它的服务(例如 EventBrite)。
假设我想创建一个应用程序,列出来自 event brite 的事件及其分析(其中 eventbrite 包括)。任何人都可以注册此服务来列出他们的活动。但由于 EventBrite 没有 OpenID 进行身份验证,我需要以某种方式获取 EventBrite 的用户登录名和密码。
一些可能的解决方案是:
- 像这样在 YAML 中存储凭据。很容易破解。
- 让用户在我的网站上的表单中输入凭据,我将凭据保存到我的数据库中,并使用它们登录 EventBrite。很容易破解。
- 让用户输入凭据,我直接将它们传递给 EventBrite 而不保存,我将响应标头 Cookies 保存到数据库中,当它们过期时,让他们再次登录。这很容易破解吗?
该假设服务还希望自动检查事件(例如通过 cron),因此它不依赖于用户通过浏览器访问我的站点。所以cookies或凭证需要存储在某个地方。
问题是,在询问了有关机密性和安全性的类似问题之后,听起来您永远不应该构建一个执行我所描述的应用程序。必须有某种方法来构建这样的东西是可以的。
那是什么方法?我错过了什么?可以使用#3 并保存 cookie(但仍需要用户通过我发送给 Eventbrite 的表单提交他们的电子邮件/密码)?什么是可接受的问题解决方案?