我正在编写一个使用 Linq to Twitter 来帮助用户管理 Twitter 帐户的网络应用程序。我了解我需要在服务器端隐藏我的消费者密钥和消费者秘密,以防止其暴露。
为了做到这一点,我知道我可以使用 MvcAuthorizer 并在我的 MVC 应用程序的服务器端使用 Linq To Twitter。但是,如果我想将 Linq To Twitter 代码与 Web 应用程序分开,并将其公开为与我的 MVC 应用程序分开托管的 Web 服务,该怎么办?
所以数据流看起来像这样......
Web 浏览器客户端 <--> 我的 Web 服务 (ServiceStack) <--> Linq to Twitter <--> Twitter REST API
通过阅读 Linq to Twitter 和 dev.twitter.com 网站上的文档,我的理解是我的流程应该是这样的。
- 用户单击 Web 应用程序中启动授权过程的某个按钮
- 用户被重定向到 Twitter,并授权该应用程序使用。
- 用户被重定向回我指定的回调 URL。我的应用现在可以通过该回调 URL 中的查询字符串访问用户的 OAuth 令牌
- 我的应用程序将这些 OAuth 令牌存储在某处
- 我的代理 Web 服务使用这些 OAuth 令牌代表用户查询 Twitter API。
我想我可以使用此处关于 MvcAuthorizer 的说明执行步骤 1-4 。
我不确定如何完成 5。我的想法是有一条 UserTweetsRequest 消息发送到我的服务。该消息将指定 Twitter 用户名。在服务内部,我会查找为该用户存储的 OAuth 令牌,将它们与我的消费者令牌结合起来,然后使用 Linq To Twitter 进行查询。
如果我现在拥有所有消费者和用户令牌,我需要通过 Linq to Twitter 调用 Twitter API,我应该在我的服务实现中使用哪个 Authorizer 来实现这一点?我需要自己实现吗?