我们有一些带有OAuth的网络服务。
我需要对它们进行一些测试,最好是在不使用浏览器的自动化环境中。
问题是登录。
不使用浏览器,并使用DotNetOpenAuth并手动设置HttpContext.Current,我似乎能够做所有事情并获得请求令牌和验证者(我使用测试用户名和密码)。
我相信下一阶段是获得授权令牌。不幸的是,无论我如何构建请求,我都无法让它发挥作用。
目前,使用WebConsumer(DotNetOpenAuth库)并调用consumer.ProcessUserAuthorization()会导致错误:
DotNetOpenAuth.OAuth.Messages.AuthorizedTokenRequest消息:oauth_verifier
可能整个方法都是错误的,所以任何帮助/建议都会有用。
感谢。
答案 0 :(得分:1)
我建议您通过拥有Web服务的令牌管理器始终包含的测试访问令牌和访问令牌机密来跳过整个OAuth握手和授权步骤。然后连接您的测试,使其令牌管理器中包含该令牌对,并在授权您的出站呼叫时始终使用该访问令牌。
答案 1 :(得分:1)
最后,没有正确存储cookie是一个问题。
我在登录页面(用户输入用户名和密码的位置)和授权页面(用户表示可以与第三方共享详细信息)之间丢失了Cookie。第二页正在进行额外的检查以查看用户是否是他们所说的人(读取登录页面打算写的cookie值)。
这不是真正的OAuth问题,只是我在“授权”页面中无法理解的内容(此后无论如何都被删除了 - c'est la vie)。
然后我遇到了Cookie的域名问题(当域名以'。'开头时)。这篇文章帮助了我:
我最终将cookie从一个域复制到另一个域。