2017-03-02 21 views
2

現在、私はdjango REST APIにJWT認証を使用しています。Django JWTとOAuthの認証と承認

しかし、JWTライブラリからは、期限切れの後にトークンをリフレッシュできません。 (5分) https://github.com/GetBlimp/django-rest-framework-jwt

したがって、リフレッシュトークン用のOAuth 2.0とアクセストークン用のJWTトークンを統合する必要があります。

RESTフレームワークにJWT + OAuth 2.0を統合するにはどうすればよいですか。または任意のサンプル?

EX:その後、 https://github.com/GetBlimp/django-rest-framework-jwt プラスhttps://django-oauth-toolkit.readthedocs.io/en/latest/#

答えて

0

私たちが行ってきたルートは、トークンの有効期限を向上させることである(36時間に言うことができます)、および特定のしきい値に達した、(12時間のようなトークンが期限切れになる前に)、サーバーに新しいトークンを要求します。

なぜ36と12ですか?ここでは完全に仮定していますが、ユーザーは1.5日に1回サイトを訪れるかもしれません。また、ウェブサイト外の生活を育むために12時間のウィンドウをリフレッシュするための12時間のウィンドウもあります(これは私には夢中ですが、別の話です)。ユーザーの行動に合った時間を選択します。ユーザーがあなたのサイトに戻ってくる可能性が高い時を見つけて、最新のウィンドウについて賢明な決定を下すようにしてください。もちろん、JWTにはリフレッシュ可能な時間制限があります。このアプリケーションでは、「今後30日間はサインインしてください」というメッセージが表示され、その後はユーザーが再認証を受ける必要があります。

セキュリティが賢明ですか? SOからの回答をたくさん読んだ後、有効期限が長くなってもJWTがより脆弱にならないようです。あなたが妄想的な人であれば、古い(まだ時間があります)JWTをブラックリストに載せることができますが、ほとんどの場合、HTTPSで十分です。