iphone - 如何格式化 POST 以使用基本 HTTP 身份验证和 Devise Rails Gem 创建用户

标签 iphone ruby-on-rails curl devise basic-authentication

对于这个认证业务,我是个新手。所以我已经搜索了一段时间,但找不到任何直接的解决方案:

我有一个使用 Devise gem 进行用户身份验证的 Rails 后端,以及一个 iPhone 前端。我需要知道如何从 iPhone 创建用户。

我已经掌握了如何创建异步帖子的资源,但我需要更好地理解 HTTP 身份验证的一般概念 - 例如,如果我要使用 Curl 创建一个将创建用户的帖子使用基本的 HTTP 身份验证,我要发送到“www.example.com/createuser”来执行此操作的curl 命令是什么?

就本示例而言,我的 Rails 应用程序的用户模型属性是电子邮件和密码。

提前一百万感谢您提供任何建议/资源链接。我非常感激!

最好, 贾里德

最佳答案

基本上,这只是将正确的数据发布到用户创建路由的问题(运行rake paths以查看 devise 在正确安装后为您创建的所有路由)。例如,我使用我的一个应用程序执行此操作(使用命令行curl):

curl -H "Content-Type:application/json" -H "Accept:application/json" -d "{\"user\":{\"email\":\"jared@jared.com\", \"password\":\"super_secret_pass\", \"password_confirmation\":\"super_secret_pass\"}}" http://jared-dev/users

..我回来了:

{"status":"signed_in"}

..只是为了确认它是否有效:

irb(main):001:0> User.find_by_email('jared@jared.com')
=> #<User id: 2, email: "jared@jared.com", encrypted_password: "$2a$10$QMBAcpKjUwoC.pcRYt88a.vA0oq58jx0lagbgY298wjf...", password_salt: "$2a$10$QMBAcpKjUwoC.pcRYt88a.", reset_password_token: nil, remember_token: nil, remember_created_at: nil, sign_in_count: 1, current_sign_in_at: "2011-03-15 19:49:47", last_sign_in_at: "2011-03-15 19:49:47", current_sign_in_ip: "127.0.1.1", last_sign_in_ip: "127.0.1.1", authentication_token: "yW37HrKUigwvSEDmXaB4", created_at: "2011-03-15 19:49:47", updated_at: "2011-03-15 19:49:47">

在这个例子中,我发布了 JSON 数据,因为我认为它更容易阅读,但是您也可以使用curl 来执行标准表单数据。根据this post,我必须修改我的应用程序 Controller 以支持 JSON 身份验证。 .

这些命令行选项对应于使用 libcurl easy 界面时通过curl_easy_setopt 设置的 CURLOPT_HTTPHEADERCURLOPT_POSTCURLOPT_POSTFIELDS

希望有帮助。

关于iphone - 如何格式化 POST 以使用基本 HTTP 身份验证和 Devise Rails Gem 创建用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4950154/

相关文章:

iphone - Objective C 中的 ~ 前缀

sql - 查找所有没有关联记录的记录

c++ - LibCurl 似乎逃脱了我的 POSTFIELDS

php - 如何越来越多地显示数据库结果?

python - 使用 pycurl 获取很多页面?

iphone - 如何查看通讯录中是否添加了新联系人?

iphone - 如何在 iOS 设备上绘制波浪线

iphone - 我将如何绘制到可变的内存位图?

mysql - 最近在生产中遇到 Rails-Mysql 连接问题

ruby-on-rails - bluehost 使用 htaccess 共享 ssl 重定向