2
バックエンドからのフロントエンドでの自動ログイン
次のシナリオを参照してください。 フロントエンドユーザーがカスタムエンティティに対してアクションを実行できるカスタムモジュールがあります。(詳細はあまり重要ではありません)。 要求は、管理者が(パスワードを持たずに)顧客アカウントでフロントエンドにログインし、顧客に対してこれらのアクションを実行できるようにすることです。 バックエンドからフロントエンドセッションを使用することはできず、フロントエンド用の永続的な自動ログインリンクを作成したくないので、これは大きなセキュリティホールになる可能性があるため、これまで私がやったことです。 顧客エンティティに空の属性を追加します。(それを呼び出しましょうlogin_key) ランダム文字列が生成されて属性に保存される管理ページにリダイレクトするボタンを顧客編集ページのバックエンドに追加しますlogin_key。 同じアクションで、管理者をこのようなフロントエンドURLにリダイレクトしautologin/index/index/customer_id/7/login_key/ajkshdkjah123123ます(前の手順で生成された値)。 フロントエンドURLでlogin_key、特定の顧客の顧客IDと一致する場合、セッションで顧客オブジェクトを設定し(ログインした状態で)login_key、URLが将来機能しないように削除します。 これでうまくいく。つまり、選択した顧客としてログインしますが、自動ログインに使用されるリンクが再度機能しません。 欠点は、2人の管理者がほぼ同時に「自動ログイン」ボタンをクリックすると、1人がログインに失敗することですが、これは許容できるリスクです。 私の主な懸念は、これが(それではなく)大きなセキュリティ問題かもしれないということです。誰かがこのアプローチで何か間違ったことを見ることができますか?またはより良いものを提案しますか? 顧客アカウントはWebサイトごとに分離できるという事実は無視してください。これは重要ではなく、簡単に管理できます。