1

login_required は django のデコレーターとして使用できますが、user/password を含む login.html はアプリによって制限されています。

@login_required
def myview(request):
...

login.html にボタンを表示して、ユーザーを他のサイトの oauth フローにリダイレクトしたいと考えています。サイトは私のコールバック URL を静的に修正します。また、ユーザー/パスワードは現在必要ありません。

oauthサーバーからのコールバックの後、ユーザーを最後のリクエスト(おそらくデータ付きの投稿)にリダイレクトする方法は?

リクエストオブジェクトを保存するためにセッション/クッキーを使用する必要がありますか?

4

1 に答える 1

1

Django では、匿名ユーザーのセッションにセッション情報を添付できます。匿名であろうとなかろうと、誰もがセッション Cookie を取得します。そのデータは、ユーザーがログインした後も保持されます。

ただし、セッション データがデータベースに保存されている場合は、時間の経過とともにますます多くのスペースが必要になるため、古いセッションを消去する定期的なタスクが必要になります。

しかし、後で再生するために POST データを保存する必要がありますか?

POST リクエストがべき等であり、既に 1 回実行されており、データがユーザーに表示される正しいページを生成するために使用されているだけであることが確実にわかっている場合は、これで問題ない場合もあります。

ただし、おそらくこれを一般的なソリューションとして実装するべきではありません。OAuth を介してリダイレクトし、認証されたユーザーとして自動的に POST する GET 要求を作成できる場合、CSRF に重大な穴が開いている可能性があります。

于 2013-01-10T16:16:33.970 に答える