2016-11-22 5 views
0

私が取り組んでいるウェブサイトは、ログインに必要なミドルウェアを使用してすべてのページのログインが必要です。強制DjangoチャンネルWebsocket認証

通知のためにクライアントWebブラウザに双方向通信するためのチャネルを備えたウェブソケットを追加しようとしています。

Daphneがインターフェイスサーバとして実行されていて、manage.py実行者がワーカーを実行しています。

私は、接続が開かれたときに実行されるconsumers.pyファイル内に働く関数を持っています。

問題は、この接続を開くことができるということで、機能はログインせずに、任意のWebブラウザで実行されます。

接続を開くことができる前に、どのようにして、ログインを強制することができますか?

答えて

0

ユーザーがページにログインするようにするには、ビューにデコレータlogin_requiredを使用できます。

from django.contrib.auth.decorators import login_required 

、あなたはその後、例えば、他の正常なデコレータとして使用することができますビューのためにそれをインポートすることができ最初の必要性: - これは何をするか

@login_required 
def my_view(request): 
    ... 

は、そのユーザーを確保しますです彼はページを見ることができる前にログインしています。

認証バックエンドを実装していて、ログインした後、ビューのページにリダイレクトすると、ログインページが表示されます。彼が既にログインしている場合、彼はページに直接アクセスすることができます。

+0

私は、サイトへのすべての要求をインターセプトし、ログインに必要なmiddewareを使用しています。 – JohnBoy

+0

ミドルウェア –

+0

にLOGIN_URLを指定しました。はい、ログインしていない間にすべてのURLに対するリクエストが/ loginテンプレートにリダイレクトされます。 – JohnBoy

0

"channels_api"ライブラリを参照してください。彼らは素晴らしい仕事をしています。

関連する問題