モバイルクライアントがgem devise_token_auth
を使用して承認するRails 5 apiプロジェクトに取り組んでいます。Rails 5 devise_token_auth CSRFトークンの真正性を確認できません
警告の意味についてはっきりしています。
第一問:CSRF保護は(JSON/XML)APIのためにオフにする必要があり、正しいを、対応?
私はWeb上でいくつか検索しましたが、CSRFはCookieを使用したWebアプリケーション上で起こっているようです。
それは、XMLやJSONの要求にも影響を受けていることを覚えておくことが重要です>とあなたがAPIを構築している場合は、デフォルトではApplicationControllerにで偽造防止>メソッドを(変更する必要があります:例外しかし、私はrails api documenトンからこれを読んで):
class ApplicationController < ActionController::Base protect_from_forgery unless: -> { request.format.json? } end
だから私はまだこのように追加することで警告を受ける:
class ApplicationController < ActionController::Base
protect_from_forgery unless: -> { request.format.json? }
include DeviseTokenAuth::Concerns::SetUserByToken
end
第二問: APIは、CSRF保護を必要としない場合は、なぜ
protect_from_forgery unless: -> { request.format.json? }
が動作しませんか?
私が間違ったことを理解しているかわかりません。ありがとうございました!
ありがとうToby!編集されました。 – Nathan