Django REST Framework認証機構の実装と内部動作

認証コンポーネントの基礎DRFの認証機能を利用する際の手順は以下の通り。BaseAuthenticationを継承したクラスを作成authenticate(self, request)メソッドを実装(request引数を受け取る)検証成功時はNoneまたは2要素のタプルを返却ビューでの適用方法(クラス属性、括弧不要):authentication_classes = [MyAuth]設定の優先順位ビュー単位(優先)authentication_classe ...

10月21日 21:34 投稿

Django REST FrameworkでSPAが安全に通信するためのCSRF対策実装ガイド

概要 Django REST Framework(DRF)をバックエンドに据えたシングルページアプリケーション(SPA)では、ブラウザの同一オリジンポリシーとCSRF保護をどう両立させるかが重要になる。単純に@csrf_exemptを付けるとセキュリティが低下するため、以下の2パターンで安全にトークンを付与する手法を紹介する。 パターンA:Cookieベースの自動付与 DRF標準のCSRF_USE_SESSIONS ...

9月2日 06:26 投稿

Django REST FrameworkのViewSetにカスタム操作を追加する@actionデコレータの実践

コレクションレベルのカスタムエンドポイント実装 detail=Falseを指定することで、モデル全件を対象とするエンドポイントを構築できます。アクティブユーザー数の集計処理を例に説明します。 from rest_framework.decorators import action from rest_framework.response import Response from rest_framework.viewsets import ModelViewSet class AccountViewSet(ModelVi ...

6月30日 20:35 投稿

Vue.js と Django を基盤とした Web アプリ開発で遭遇する主要な技術的課題と対応策

Vue リアクティブデータ処理と初期化タイミング クライアントサイドアプリケーションを実装する際、コンポーネントのマウント直後にデータを取得し、その結果に基づいて状態を管理する必要があります。この場合、ref で定義された変数の値が即座に同期されていないため、外部からの参照や次の画面への引数受け渡しにおいて予期しない初期値が保持される現象が発生します。 ...

6月18日 23:22 投稿

DRFソースコード解析-シリアライザ/リクエスト処理/レスポンス処理/例外処理/レンダリング/10種類のAPI実装

概要 Django REST Framework(DRF)を使用する際、フロントエンドとバックエンドは分離されています。データ交換にはJSONが主流で、バックエンドではPython辞書(dict)とJSONの相互変換が必要です。jsonモジュールのloads/dumpsで手動変換可能ですが、DRFのシリアライザ機能により、この処理を自動化できます。シリアライザはデータ検証やカスタムロジックの挿入ポイントも提 ...

5月22日 05:00 投稿