1
私はユーザー登録と認証用に宝石Deviseを使用しています。私はWebインターフェイスを使用するとすべてがうまくいく。しかし、私はAPIを介して認証したい。だから、私はその後、私はapplication_controller.rbを変更したが、それは助けていない要求をしたし、エラーAPIを使用してRailsとDeviseで認証する方法は?
#request
curl -H 'Content-Type: application/json' -H 'Accept: application/json' -X POST http://localhost:3000/users/sign_in -d '{"user" : { "email" : "[email protected]", "password" : "r465ee"}}'
#error
Started POST "https://stackoverflow.com/users/sign_in" for ::1 at 2017-01-11 17:43:57 +0300
Processing by Devise::SessionsController#create as JSON
Parameters: {"user"=>{"email"=>"[email protected]", "password"=>"[FILTERED]"}, "session"=>{"user"=>{"email"=>"[email protected]", "password"=>"[FILTERED]"}}}
Can't verify CSRF token authenticity.
Completed 422 Unprocessable Entity in 2ms (ActiveRecord: 0.0ms)
ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):
を得ました。
class ApplicationController < ActionController::Base
protect_from_forgery with: :null_session, if: ->{request.format.json?}
end
処理を試してみてください:{ "ユーザー" => { "電子メール" => "[email protected]"、 "パスワード" = "" [FILTERED] "}}}} メールアドレスを入力すると、 CSRFトークンの真正性を検証します。 許可されていないパラメータ:user、session –
これは全く異なる問題です。あなたの強力なパラメータをチェックし、許可されているようにユーザーとセッションのパラメータを設定してみてください。 – VAD
最後に、 'user'(curl -H 'Content-Type:application/json' -H 'Accept:application/json' -X POST http:// localhost:3000/api/v1/auth/sign_in -d '{"email": "[email protected]"、 "password": "r465eer465ee"}') –