我正在关注this指南。我正在尝试使用HTTPie从服务器获得200个成功响应。
http -a peter@cleanpixel.nl POST http://localhost:3000/auth/sign_in
http: password for peter@cleanpixel.nl@localhost:3000:
HTTP/1.1 401 Unauthorized
Cache-Control: no-cache
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Vary: Origin
X-Request-Id: 173aea74-eef6-4070-b3bb-832f39a2a7ba
X-Runtime: 0.055728
{
"errors": [
"Invalid login credentials. Please try again."
]
}
但是我已经检查过,仔细检查过并仔细检查过细节。他们是对的。
这是我的user.rb:
class User < ActiveRecord::Base
# Include default devise modules.
devise :database_authenticatable,
:registerable,
:recoverable,
:rememberable,
:trackable,
:validatable,
:confirmable,
:omniauthable
include DeviseTokenAuth::Concerns::User
end
这是种子:
User.create({email: 'peter@cleanpixel.nl', password: "********", password_confirmation: "*********"})
application_controller:
class ApplicationController < ActionController::API
include DeviseTokenAuth::Concerns::SetUserByToken
include Response
end
我的HTTPie通话错了吗?我忘了在Ruby中配置某些东西或者在某个地方配置Devise吗?我见过人们在使用401和Devise时遇到了麻烦,但看起来解决方案适用于旧版本。
我现在尝试了一些卷曲命令,但没有成功。
curl -v -X "POST" "http://localhost:3000/auth/sign_in" -H "Content-Type: application/json; charset=utf-8" -d $'{"email": "user@example.com","password": "monkey67"}'
返回:
curl:(3)第9栏中[globbing]无与伦比的近支撑/支架
如果我运行curl -v -H 'Content-Type: application/json' -H 'Accept: application/json' -X POST http://localhost:3000/auth/sign_in -d '{"email":"user@example.com", "password":"monkey67"}'
,我会:
注意:已经推断出不必要的使用-X或--request,POST。 *无法解析主机:应用程序 *关闭连接0 curl:(6)无法解析主机:应用程序 注意:已经推断出不必要的使用-X或--request,POST。 *无法解析主机:应用程序 *关闭连接1 curl:(6)无法解析主机:应用程序 注意:已经推断出不必要的使用-X或--request,POST。 *尝试:: 1 ... * TCP_NODELAY设置 *连接到:: 1端口3000失败:连接被拒绝 *尝试127.0.0.1 ... * TCP_NODELAY设置 *连接到localhost(127.0.0.1)端口3000(#2) POST / auth / sign_in HTTP / 1.1 主持人:localhost:3000 User-Agent:curl / 7.54.1 接受: / 内容长度:25 内容类型:application / x-www-form-urlencoded
- 上传已完全发送:25个字节中的25个 &LT; HTTP / 1.1 401未经授权 &LT; Content-Type:application / json;字符集= utf-8的 &LT;变化:起源 &LT;缓存控制:无缓存 &LT; X-Request-Id:e10c2484-30c9-49e0-b5c2-3404ba311ac7 &LT; X-Runtime:0.065560 &LT;转移编码:分块 &LT; {“errors”:[“无效的登录凭据。请再试一次。”]} *连接#2主机localhost保持不变 curl:(3)[globbing]第18栏中无与伦比的紧密支撑/支架
答案 0 :(得分:0)
我认为问题出在您的请求中,您只是传递了电子邮件,您也需要添加密码。如果您正在使用HHTPie,正如您所说,您需要按HTTPie documentation中所述提供密码。
您必须使用类似
的内容http -a peter@cleanpixel.nl:some_password POST http://localhost:3000/auth/sign_in