5

我正在尝试使用 Rest-client gem 为我的应用程序执行一些小任务,该应用程序使用 Authlogic 对用户进行身份验证。从 Rest-Client 的 API 中,我看到可以像这样发布登录过程所需的数据:

require 'rest_client'
RestClient.post "http://127.0.0.1:3000/user_sessions", {:user_session => {:username => 'myusername', :password => 'mypassword'}}.to_json, :content_type => :json, :accept => :json

查看我的开发日志,我看到该应用程序已登录我并将我正确重定向到用户的私人页面。但是,当我尝试“重新加载”私人页面时,

RestClient.get 'http://127.0.0.1:3000/users/1'

我再次回到登录页面,就好像我没有登录一样。所以我想知道这是否与会话或cookies有关?

我已经使用 cURL 成功地重现了这个场景,我使用开关“-c cookie.txt”来保存有关我已经登录的信息,并使用开关“-b cookie.txt”进行每次调用来告诉远程服务器关于我的身份验证。我可以理解这个概念,就像去主题公园或酒吧时手腕上的印章,他们知道你付了钱。但是我发现在 RestClient 中没有提到这种机制。任何帮助都可以很好地解决这个问题。我也不介意尝试其他 http 客户端。

问候

4

1 回答 1

7

如果您使用 Authlogic,您可以使用单次使用令牌而不是用户/通行证。单次使用令牌专门用于 API 调用,就像您在这里所做的一样。

请参阅:此处的 rdocs

于 2010-02-19T22:33:59.013 回答