問題タブ [django-rest-framework-simplejwt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
206 参照

django-rest-framework - あるユーザーによるログインと別のユーザーのアクセストークン

トークンベースの認証用に simpleJWT を実装しました。簡単な Hello World テスト API を作成しました。

テスト中、私は /rest-auth/login/ でログを記録しており、生成には /api/token/ を使用しています - どちらも正常に動作しています。

テストのために、たとえばユーザー XYZ (helloworld api のアクセス権がある) でログインし、別のユーザー ABC (helloworld api のアクセス権がない) を使用してトークンを生成しています。

これで、ユーザー XYZ は認証されました (ok) が、ユーザー ABC (ok) のトークンを取得しています。

これで、ABC を使用するために生成されたトークンを使用して API を呼び出すと、ユーザー ABC が API に対する権限を持っていなくても、helloworld api にアクセスできます!! 権限を持つユーザー XYZ がすでにログインしているためです。

問題は、複数のユーザーがサイトを使用する場合に常にこれが当てはまることです。解決方法は? 以下にいくつかのコード スニペットも示します。

私のsettings.pyが切り取られました

コードは基本的にユーザーを認証するデコレーターは以下のとおりです

この場合、私の戦略は何ですか?

編集 デコレータを次のように変更しましたが、機能しています。私が何か間違ったことをしているなら、誰かがコメントしてください

0 投票する
1 に答える
762 参照

django - simplejwt トークンをデータベースに保存する方法

ユーザー登録にはdjango-rest-framework-simplejwtを使用しています。

このチュートリアルに従って、ここにリンクの説明を入力してください

私は次のようにコーディングします:

ビューで:

問題は、ユーザーを作成するたびに、2 つの 2 つのトークンを返すことができますが、データベースでトークンが見つからないことです。

だから私はそれらを保存しなかったと思うので、トークンを保存する必要がありますか?

0 投票する
1 に答える
1331 参照

reactjs - Jwtトークンの有効期限を確認して反応するdrf

質問する場所を間違えていたらすみません。APIにDjango drfを使用し、アプリで反応からフロントを提供しています。認証に simplejwt を使用しています。アクセスの有効期限を確認し、反応からトークンを更新して、有効期限が切れたときにアクセストークンを生成したいと考えています。より良い方法は何ですか?