私は現在、私のdjangoアプリケーションでデフォルトのデータベースバックアップセッションモデルを使用しています。フロントエンドは、REST APIとのインターフェイスをとるSPAであり、セッションがタイムアウトしたときにユーザーがページを失わないように非同期ログインがあります。私は、ログインモードが表示されるように、セッションがブラウザでタイムアウトしたことを検出しようとしています。しかしブラウザでdjangoのDBベースのセッションが期限切れになっているかどうかを確認するには?
:
- 彼らはもはやログインしているので、
User
はもはやAPIリクエスト の実行を許可されていない場合、彼らはHTTP403を取得していません。 User
がUsers
に属するオブジェクトインスタンスにアクセスしようとすると、 もHTTP403を取得します。
私は2つの403を区別する必要があります。私の即時の本能がsessionid
クッキーとnow
の有効期限を比較することであったが、:
- クッキーは有効期限
httpOnly
- ですそこで、私の質問
に設定されていません:どのように私が言うことができるが、私のdjangoセッションが期限切れになっている場合、ブラウザで?
することはできHTTP401ユーザーが許可されていないときとHTTP403ユーザは、他のユーザ – viveksyngh
それはあなたが求めているものを正確ではないのですが、私は代わりにあなたがJWTを使用したほうが良いと思うに属しているオブジェクトインスタンスにアクセスしようとするとセッション。これはREST APIに適しており、トークンを定期的に更新することができます。また、Javascriptでトークンをデコードして有効期限を取得できるので、HTTPリクエストを行わずに期限切れになっているかどうかを確認できます。 Django RESTフレームワークを使用している場合は、JWTを使用するのが簡単です。 –
私は、私が尋ねた質問に対する答えであるので、私は401の回答を受け入れるつもりですが、トークンがより良くなることに同意します。ありがとう! – Escher