1

Django と Tastypie を使用した基本的な認証の例はありますか? Django での認証、特に Tastypie での認証のしくみについて少し混乱しています。認証が API キーでどのように機能するか、および Django に組み込まれている User モデルでユーザーを認証する方法を知りたいです。提案やコードは本当にありがたいです。ありがとう。

4

2 に答える 2

10

認証に関する質問に答えるために:

Django での認証はどのように機能しますか?

機能するにはDjango 認証が必要ですSessionMiddleware。セッションがロードされると、Django 認証バックエンド_auth_userは、現在ログインしているユーザーの ID を含む特別な Cookie (IIRC) を読み取ります。django シェルにアクセスできる場合は、それを操作して任意のユーザーとしてログインできます。バックエンドが_auth_userキーがあることを認識すると、レイジーな User オブジェクトをリクエストに追加します (そのため、User.objects.get(...)実際に必要になるまで を遅らせます)。セッション dict にそのようなキーがない場合、ユーザーは匿名であると主張AnonymousUserされ、代わりに のインスタンスがリクエスト オブジェクトに追加されます。

Tastypie で認証はどのように機能しますか?

リソース ビューが実行される前に、Resource.is_authenticated(request)メソッドが呼び出されます。このメソッドは、選択した のバックエンドのis_authenticated(request)メソッドを呼び出します。メソッドが を返した場合、認証は失敗したと主張され、エラーが返されます。メソッドが を返す場合、代わりにレスポンスが返されます。メソッドが を返す場合、リクエストは認証されたと主張されます。authenticationResourceFalseUnauthorizedHttpResponseTrue

ユーザー モデル認証は Tastypie でどのように機能しますか?

User モデルの認証はSessionAuthentication、Tastypie 自体が提供するバックエンドを使用して実行できます。認証ミドルウェアが関連するユーザーモデルをリクエストに自動的に挿入できるように、現在のリクエストのセッションを作成します。このメソッドが機能するには、API クライアントが Cookie の保存と今後のリクエストでの再送信をサポートしている必要があることに注意してください。

于 2013-07-28T20:14:47.463 に答える
0

これは便利かもしれません。Django セッション Cookie に基づいてユーザーを認証できます。

https://github.com/amezcua/TastyPie-DjangoCookie-Auth/blob/master/DjangoCookieAuth.py

私は自分のアプリケーションでこれを使用していますが、動作します!

于 2013-01-05T22:36:06.893 に答える