devise_auth_token期待什么参数?
问题描述:
Devise_auth_token新手在这里。我有一个唯一的应用程序。我试图用curl向我的api发出请求,除了当我想登录一个用户时,我已经成功地做到了这一点。devise_auth_token期待什么参数?
curl -XPOST -H 'Content-Type: application/json' -d '{ "session": { "email":"[email protected]", "password": "password"}}' localhost:3000/auth/sign_in
不知道我在做什么错。正如我所说,出于某种原因,创建用户时没有任何问题。当试图登录我得到这个错误
{"errors":["Invalid login credentials. Please try again."]}
任何帮助非常感谢,谢谢。
答
curl -v -XPOST -H 'Content-Type: application/json' -d '{ "email":"[email protected]", "password": "password"}' localhost:3000/auth/sign_in
* Hostname was NOT found in DNS cache
* Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 3000 (#0)
> POST /auth/sign_in HTTP/1.1
> User-Agent: curl/7.35.0
> Host: localhost:3000
> Accept: */*
> Content-Type: application/json
> Content-Length: 55
>
* upload completely sent off: 55 out of 55 bytes
< HTTP/1.1 200 OK
< X-Frame-Options: SAMEORIGIN
< X-XSS-Protection: 1; mode=block
< X-Content-Type-Options: nosniff
< Content-Type: application/json; charset=utf-8
< access-token: Bm3FaRpSAjT-EtTrj8Ucww
< token-type: Bearer
< client: 6XCiYTxcEITVRZItRKFa8w
< expiry: 1480750998
< uid: [email protected]
< ETag: W/"be9091473a08ccf2672b9685eb25caa2"
< Cache-Control: max-age=0, private, must-revalidate
< X-Request-Id: 4996fb00-a45c-41e4-b30b-c86bc10b24d5
< X-Runtime: 0.737506
< Transfer-Encoding: chunked
<
* Connection #0 to host localhost left intact
{"data":{"id":1,"email":"[email protected]","provider":"email","uid":"[email protected]","name":null,"nickname":null,"image":null}}
使用-v卷曲 - 它会给你很多线索。 评论是正确的 - 不要将登录名/密码放在session
之内。
从TL;DR剪断,你应该仔细阅读:
认证报头由以下则params的:
access-token
,client
,expire
,uid
为每个请求将在提供所需的认证头来自先前请求的响应。
您是否检查过您的rails日志文件? – Eric
@Eric开始POST“/ auth/sign_in”为:: 1在2016-11-18 14:52:41 -0500 DeviseTokenAuth :: SessionsController处理#create as */* 参数:{“session”=> {“email”=>“[email protected]”,“password”=>“[FILTERED]”}} 未经许可的参数:session 已完成401 1ms内未授权(视图:0.1ms | ActiveRecord:0.0ms) – RickD
@ Eric是我提出的请求的记录结果。 – RickD