1

ブラウザーとモバイル デバイスからアクセスできる Rails アプリケーションがあります。認証には Devise を使用しており、モバイル デバイスにはトークン認証を使用しています。

モバイル アプリからのログイン時に認証トークンを取得し、モバイル デバイスから行うすべての呼び出しでそれを使用します。

ブラウザでは、セッション ベースの Cookie を使用しています。そのため、ブラウザーとモバイル アプリの両方から同じユーザー名/パスワードを使用して 2 人のユーザーが同時にログインでき、データが破損する可能性があります。

この問題を解決するにはどうすればよいですか? ブラウザからのすべての呼び出しでも同じ auth_token を送信できれば、最後にログインした auth_token が優先されるため、この問題は修正されます。

すべての呼び出し (get/post/put/delete) に対してブラウザーからこの認証トークンを送信する方法についての手がかりはありますか?

jQuery やブラウザーからの Ajax 呼び出しは使用していません。

ありがとう

4

1 に答える 1

0

リクエストごとにステートレス トークンを使用するように devise を設定する必要があります。

config.skip_session_storage = [:token_auth]

まだお持ちでない場合は、トークン認証可能ドキュメントをご覧ください。トークンが有効であることを確認し、有効でない場合は再生成するメソッドが定義されています。ブラウザーでこれを使用するのが賢明かどうかはわかりませんが、ユーザーがブラウザーにログインすると、モバイル アプリでの再認証が強制される場合に、モバイル アプリのトークンが失効する可能性があります。

于 2013-03-17T15:16:13.373 に答える