2016-07-03 4 views
0

私は現在、djangoとdjango restframeworkを使用しているアプリケーション用の残りのAPI、つまりuriを作成中です。 apiエンドポイントの1つはapp/loginのようなapiエンドポイントを持つログインです。このuriはユーザー名とパスワードでユーザーを認証するだけでなく、ユーザーが有効なセッションを持っているかどうかをチェックします。私は、これは「ユーザ名」と「パスワードとして危険です知っているjsonの資格情報を渡してdjangoでログインURIを作成する

{ 
    'username' : 'username', 
    'password': 'password' 
} 

はまた、私は、並べ替えの何かを任意のHTMLテンプレートのフォームをせずにPOSTリクエストでJSONとしてこれを渡したいです'は、POSTリクエストをプレーンテキストとして添付されます。しかし、アプリケーションのフロントエンド部分が別々に設計され、それがapiエンドポイントだけを使用するので、私はそうする必要があります。どうすればこれを実現できますか?また、ユーザー、セッション、トークンを認証する最良の方法は何ですか?私は多くのリンクを参照しましたが、各認証タイプのベストユースケースを理解できませんでした。

もう1つのことは、トークン認証がどのように機能するのか混乱していることです。これは、ユーザーの資格情報またはすべてのユーザーインスタンスに与えられたトークンのみを受け取り、そのトークンに対してユーザーを検証しますか?

助けてください誰か。私はdjangoでログインするのが初めてです。

答えて

1

セキュリティが不安な場合は、ウェブサイトでSSLを使用していることを確認してください。パスワードがインターネットを介して平文で送信されるので、そうすることが非常に勧められます。そのためには、SSL証明書が必要です。オンラインで詳しく読むことができます。

HTMLテンプレートフォームがあっても、パスワードは依然として要求のどこかにあり、平文として保存されます。セキュリティの観点からは違いはありません。

ユーザー、トークン、またはセッション認証を認証する最良の方法は、ニーズに応じて異なります。モバイルアプリケーションの場合は、通常はトークン認証を使用して処理する方が簡単です。シングルページのWebアプリケーションでも同様です。しかし、あなたがセッション認証を組み込んだフレームワークを使用しているなら、それが最善の策だと言えます。

トークンの認証は、ログイン時にユーザー名とパスワードの形式でユーザー資格情報を取得します。ユーザーが要求を認証したい場合、「Authorization:Token af538baa9045a84c0e889f672baf83ff24」という形式のトークンを含むヘッダーフィールドを送信します。いくつかの人々はヘッダーの名前を違うと決めますが、単に大会に従えば最高です。サーバー側(あなたの場合、Djangoアプリケーション)は、リクエストのヘッダーで送信されたトークンによってユーザーを認証します。これは、どのトークンがどのユーザーに属しているかが格納されているデータベース内のテーブルを使用して、送信されたトークンとユーザーとの関係を調べることによって行われます。

+1

この質問をサポートし、質問に答えることに感謝:)これは私が探していたものです! –

関連する問題