我正在尝试将 OAuth 与 .NET (DotNetOpenAuth) 一起使用,以通过 Web 应用程序将更新发送到 Twitter 帐户。我了解 OAuth 和 Twitter 的基本工作流程。
如果它在服务器 Web 应用程序中有用,我在哪里感到困惑?我不想要任何用户交互。但是在应用程序启动后看起来如何,需要重新创建请求令牌以及访问令牌。这涉及到用户交互。
我的案例的正确工作流程是什么?将请求令牌或访问令牌存储在配置文件中?还是最简单的方法,使用 HTTP 基本身份验证?
谢谢
我正在尝试将 OAuth 与 .NET (DotNetOpenAuth) 一起使用,以通过 Web 应用程序将更新发送到 Twitter 帐户。我了解 OAuth 和 Twitter 的基本工作流程。
如果它在服务器 Web 应用程序中有用,我在哪里感到困惑?我不想要任何用户交互。但是在应用程序启动后看起来如何,需要重新创建请求令牌以及访问令牌。这涉及到用户交互。
我的案例的正确工作流程是什么?将请求令牌或访问令牌存储在配置文件中?还是最简单的方法,使用 HTTP 基本身份验证?
谢谢
如果我对您的理解正确,您的应用程序将不会代表您的用户与 Twitter 进行交互,而是充当您的应用程序的 Twitter 帐户。
在这种情况下,需要考虑两个主要因素。
1)如果您使用基本身份验证,您是否希望将“来自 API”附加到每个状态,或者如果您使用 OAuth,您的应用程序名称将出现。2) 你想付出额外的努力来实现 OAuth。
如果您决定使用 OAuth,您将在配置中存储您的应用程序使用者密钥/秘密和帐户访问令牌,就像您存储帐户屏幕名/密码一样。
您的“需要重新创建请求令牌”短语表明您可能会遇到这样的问题,即每次用户访问您都需要重新授权 Twitter,也许您正在寻找一种方法来访问用户的 Twitter 帐户,而他还在不在您的网站上,当他们的令牌没有重新授权时,您怎么能做到这一点。是对的吗?
如果是这样,则用户不必在每次访问您的网站时都重新授权 Twitter。该令牌应该持续很长时间,这也将允许您的网站在他们不直接与您的网站交互时访问他们的 Twitter 帐户。问题可能是您没有实现该IConsumerTokenManager
接口,而是使用了 default InMemoryTokenManager
,它仅供示例使用,因为这个仅用于内存的令牌管理器在每次重新启动 Web 应用程序时都会丢失令牌。您自己的这个简单接口的实现应该从一些持久性存储(例如数据库)中存储和读取令牌。