Django RESTフレームワーク-ユーザービューのデータアクセスを防止しますか?

ニューファンドランド

私のAPIには、現在登録されているすべてのユーザーの詳細(アドレスなど)を現在表示する/ usersエンドポイントがあります。これは(Ember)アプリケーションからアクセスする必要があります(たとえば、ユーザーの配送先住所を表示するため)が、明らかな理由で、誰もがデータを表示できないようにすることはできません(閲覧可能なAPIを介して、またはプレーンJSONとして)ビューをJSONRendererのみを使用するように制限します)。アプリケーションは最初にフロントエンドアプリ(トークンベースの認証を使用しています)からユーザーにログインする必要があるため、認証とアクセス許可を使用できないと思います。たとえば、Djangoのユーザービューで認証を使用すると、Emberからログインできません。

私は何かが足りないのですか?

更新

こんにちは、私はこれに戻りたいと思いました。

Ember側の認証には、DjangoでEmber SimpleAuthとトークンベースの認証を使用しています。すべて正常に機能しています。Emberアプリにログインして、トークンにアクセスできます。

私ができる必要があるのは、ユーザーにアクセスすることです。このために、私はここのコードサンプルに従いましたhttps://github.com/simplabs/ember-simple-auth/blob/master/guides/managing-current-user.md

ログインしたユーザーのトークンを使用して、Postmanでトークンベースの認証をテストしました。/usersエンドポイントにアクセスできます。(これはすべてのユーザーを返します-私が欲しいのは、私がトークンを返すユーザーだけのためですが、それは後でです!)

問題は、Emberリクエストで(トークン)ヘッダーを渡す方法です。

this.store.findAll('user') .... etc 

これは明らかに現在発生しておらず、これを修正する方法がわかりません。

更新

修正しました。アプリケーションアダプタの承認関数がヘッダーを設定していなかったことが判明したため、ヘッダーを明示的に設定するようにコードを変更しました。

authorize(xhr) {
    let { access_token } = this.get('session.data.authenticated');
    if (isPresent(access_token)) {
        xhr.setRequestHeader('Authorization', `Token ${access_token}`);
    }
},
headers: computed('session.data.authenticated.token', function () {
    const headers = {};
    if (this.session.isAuthenticated) {
        headers['Authorization'] = `Token ${this.session.data.authenticated.token}`
    }
    return headers;
})
クエンティン

EmberはSPAを作成するためのフレームワークです。これらはブラウザで実行されます。したがって、Emberがデータを取得するには、データをブラウザに送信する必要があります。

ブラウザは完全にユーザーの管理下にあります。ブラウザは、ウェブサイトの所有者ではなく、彼らのために機能するソフトウェアです。

ブラウザに送信するデータはすべて、ユーザーがアクセスできます。終止符。


ユーザーがAPIから読み取ることができるデータのビットを制限する場合は、サーバー側でそれらの制限を適用するロジックを記述し、クライアント側のEmberコードに依存せずにビットを除外する必要があります。ユーザーに見てもらいたい。


アプリケーションは最初にフロントエンドアプリ(トークンベースの認証を使用しています)からユーザーにログインする必要があるため、認証とアクセス許可を使用できないと思います。たとえば、Djangoのユーザービューで認証を使用すると、Emberからログインできません。

これは本当に意味がありません。

通常、これは発生するはずです。

  1. ユーザーがEmberアプリにいくつかのクレデンシャルを入力します
  2. 残り火アプリはそれらをサーバー上の認証エンドポイントに送信します
  3. サーバーはトークンを返します
  4. 残り火アプリはトークンを保存します
  5. 残り火アプリは、APIからデータをリクエストするとトークンを送信します
  6. サーバーはトークンを使用して、APIから返送するデータを決定します

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Django RESTフレームワークでは、スーパーユーザーのみがAPIWebビューにアクセスできます

Django Restフレームワーク:カスタムビュー

ユーザーRESTフレームワークDjangoを更新します

Django Restフレームワークのユーザー登録?

Django Rest フレームワーク CRUD

django RESTフレームワークとカスタムユーザーモデルで新しいユーザーを作成する方法

Django Restフレームワークを使用せずにユーザーを認証しますか?

Django RESTフレームワーク、シリアライザー:追加データ?

django restフレームワークでオブジェクトを作成するときに、ネストされたシリアライザーのシリアライザーにユーザーデータを渡します

クラスベースのビューで主キーを削除する(django restフレームワーク)

perform_createビューセット(django Restフレームワーク)にユーザーを追加するにはどうすればよいですか?

django RESTフレームワークのシリアライザーからカスタムエラー応答を送信しますか?

Django RESTフレームワーク+ Django REST Swagger + ImageField

django-rest-シリアライザー内のフレームワークアクセスフィールド

django-rest-複数のルックアップ引数を使用したフレームワークカスタムビューセットの取得

Django RESTフレームワーク:オブジェクトへのユーザーアクセスを制限する

Django Restフレームワーク:モデルなし

Django-pythonrunserver時のRESTフレームワークエラー

django RESTフレームワークが応答データを表示しない

Django RESTフレームワーク:非モデルシリアライザー

DjangoテストのRESTフレームワーク:APIRequestFactoryとAPIClient

Djangoを使用したCSRFとCORS(RESTフレームワーク)

Djangoレストフレームワークはユーザーのログインを維持します

django RESTフレームワークシリアライザーからフィールドを除外する

django Restフレームワーク、シリアル化不可

Django RESTフレームワーク-スタッフ以外のユーザーに対して閲覧可能なAPIを無効にする方法(is_staff = False)

Django。RESTフレームワーク。SerializerMethodField()の名前を変更します

シリアライザーでフィールドの属性を取得する(django restフレームワーク)

Django REST フレームワーク: CreateOnlyDefault の目的

TOP 一覧

  1. 1

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  2. 2

    Spring Boot Filter is not getting invoked if remove @component in fitler class

  3. 3

    Python / SciPyのピーク検出アルゴリズム

  4. 4

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  5. 5

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  6. 6

    androidsoongビルドシステムによるネイティブコードカバレッジ

  7. 7

    ZScalerと証明書の問題により、Dockerを使用できません

  8. 8

    VisualStudioコードの特異点/ドッカー画像でPythonインタープリターを使用するにはどうすればよいですか?

  9. 9

    ビュー用にサイズ変更した後の画像の高さと幅を取得する方法

  10. 10

    二次導関数を数値計算するときの大きな誤差

  11. 11

    Ansibleで複数行のシェルスクリプトを実行する方法

  12. 12

    画像変更コードを実行してもボタンの画像が変更されない

  13. 13

    Reactでclsxを使用する方法

  14. 14

    Three.js indexed BufferGeometry vs. InstancedBufferGeometry

  15. 15

    __init__。pyファイルの整理中に循環インポートエラーが発生しました

  16. 16

    PyTesseractを使用した背景色のため、スクリーンショットからテキストを読み取ることができません

  17. 17

    値間の一致を見つける最も簡単な方法は何ですか

  18. 18

    reCAPTCHA-エラーコード:ユーザーの応答を検証するときの「missing-input-response」、「missing-input-secret」(POSTの詳細がない)

  19. 19

    三項演算子良い練習の代わりとしてOptional.ofNullableを使用していますか?

  20. 20

    好き/愛の関係のためのデータベース設計

  21. 21

    エンティティIDを含む@RequestBody属性をSpringの対応するエンティティに変換します

ホットタグ

アーカイブ