2016-12-02 13 views
2

私は、まっすぐなPHPを使用して構築された以前のカスタムサイトを置き換えるためにDjango上に構築されたサイトを持っています。Djangoを使って別のユーザーとしてログインする方法は?

サイトは、ビジネスオーナーがすべての従業員のマスターアカウントにサインアップしてユーザーアカウントを作成できるように構築されています。マスターアカウントは、すべてのユーザーのリストを表示し、各ユーザーの特定のボタンをクリックし、そのユーザーとしてログインすることができます。ユーザー名またはパスワードを入力する必要はありません。

現在のユーザーが従業員であることを宣言するいくつかのクッキーと、システムにこれもまだマスターアカウントであることを伝える別のクッキーを設定します。トップに新しいボタンがあり、以前のマスターアカウントセッションに移行します。

私はDjangoでこれを達成する方法を苦労しています。すべてがとてもモジュール化されているため、ユーザーがユーザー名とパスワードを再入力する必要なく、新しいアカウントのセッションを開始する方法がわかりません。

答えて

0

いつでもloginメソッドを使用してそのようにすることができます。私のアドバイスは、しかし、これは最善のアプローチではないようです。マスターユーザーのセッションを変更することで、ユーザーがマスターユーザーであるかどうかを知る方法がないので、どのようにしてマスターアカウントに戻る権限を得ることができますか?

セッションを変更せずに、現在のユーザーを保存するには、代わりにCookieまたはブラウザのローカルストレージを使用する必要があります。次に、あなたのウェブサイトのアクションにはjust define permissionsが含まれているので、マスターユーザーはすべてのアクションにアクセスする権限を持ちます。これには、変更したユーザーアカウントのアクションも含まれます。

+0

ユーザーをブラウザのローカルストレージに保存する場合、改ざんを防止するためにCookieに署名するか、すべての要求に対してユーザーが許可されているかどうかを確認する必要があります。サーバ側のストレージを使用するか、クッキーバックエンドの場合に自動的に値に署名する、セッションに現在のユーザとマスターユーザを格納することができます。 – knbk

関連する問題