0

シナリオは次のとおりです。

ユーザーはデバイスログインを介して通常どおりログインできます。ログインすると、ユーザー ダッシュボードにフラッシュが埋め込まれ、同じサーバー (現在両方とも localhost:3000) 上の API を呼び出します。

API の呼び出しは、devise の token_authenticatable を使用して、提供された auth_token で行われます。

ここで問題が発生します。

API リクエストが行われると、ログインしているユーザーはログアウトされます。

私は多くのことを掘り下げてきましたが、これを解決する方法について確実な手がかりは見つかりませんでした。

問題は、API の呼び出しが、ブラウザによって設定されたユーザーの Cookie を上書きしているためだと思います。APIが呼び出されると、認証Cookieが設定され、上書きされるのを見て、これをテストしました。

参考までに、私はChromeで開発しています。

どんな助けでも大歓迎です。十分な詳細を調べていない場合は、問題の診断に役立つ可能性がある他の情報を提供できるかどうかお知らせください。

どうもありがとう

4

1 に答える 1

3

問題は、CSRF トークンをサーバーに投稿していないことだと思います。CSRF 保護は、すべての Rails アプリケーションでデフォルトでオンになっています。次の行をコントローラーに追加することでバイパスできます。

skip_before_filter  :verify_authenticity_token
于 2013-02-24T08:25:51.320 に答える