【问题标题】:Devise not responding correctly to JSON message设计未正确响应 JSON 消息
【发布时间】:2012-01-07 23:42:05
【问题描述】:

我发现 Devise 无法正确响应 JSON 消息。

以下工作正常

curl -XPOST 'http://localhost:5000/users/sign_in.json' -d 'user[email]=MYUSER' -d 'user[password]=MYPASSWORD'

在 171 毫秒内完成了 201 个创建

在适当的地方,我想要一个更合适的 JSON 格式

curl -v -b cookie.file -c cookie.file -H "Content-Type: application/json" -X POST -d '{"user":{"mail":"MYUSER","password":"MYPASSWORD"}}' http://localhost:5000/users/sign_in.json

但我似乎没有工作

Devise::SessionsController#create as JSON 处理 23:10:32 web.1 |参数:{"user"=>{"mail"=>"MYUSER", "password"=>"[FILTERED]"}, "session"=>{"user"=>{"mail"=>"MYUSER" , "password"=>"[FILTERED]"}, "action"=>"create", "controller"=>"devise/sessions", "format"=>"json"}} 23:10:32 web.1 | 11ms 内完成 401 Unauthorized

有什么想法吗? 谢谢

【问题讨论】:

  • 它对安全问题犹豫不决。 CSRF 代表跨站点请求伪造。 en.wikipedia.org/wiki/Cross-site_request_forgery
  • 警告对这两种情况都很常见(在成功的情况下,我也有“警告:无法验证 CSRF 令牌真实性”,这来自protect_from_forgery),但可能是一个令人困惑的点,我将编辑帖子。谢谢。
  • 是什么让您认为第二版不起作用?我没有看到任何其他警告或错误消息。
  • 401 未授权。 JSON 结果应该包含身份验证令牌(这是我设置 rails 控制器的方式),但在第二种情况下为空。

标签: ruby-on-rails json devise


【解决方案1】:
curl -v -b cookie.file -c cookie.file -H "Content-Type: application/json" -X POST -d '{"user" : {"email":"MYUSER" , "password":"MYPASSWORD" }}' http://localhost:5000/users/sign_in.json

它正在做这项工作。结果是一个(普通的)拼写错误(邮件代替了正确的电子邮件)。 Rails 日志并没有帮助我快速找到解决方案

【讨论】:

    猜你喜欢
    • 2023-01-29
    • 1970-01-01
    • 2022-08-16
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-30
    • 2023-04-02
    相关资源
    最近更新 更多