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."]} 

任何帮助非常感谢,谢谢。

+0

您是否检查过您的rails日志文件? – Eric

+0

@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

+0

@ Eric是我提出的请求的记录结果。 – RickD

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-tokenclientexpireuid

为每个请求将在提供所需的认证头来自先前请求的响应。