5

私が現在取り組んでいるプロジェクトは、管理コンソールと通常のフロントエンドに分かれています。フロントエンドとバックエンドの両方が同じ Laravel インスタンスにあります。

フロントエンドでは、フロントエンド専用のユーザー ログイン システムを作成しようとしています。別のテーブルとモデルを使用し、管理者のユーザー モデルとは異なる関係を持っています。

私が理解できないのは、両方のシステムで Laravel Auth クラスを使用する方法です。論理的には、Auth は 1 つの構成ファイルを使用し、さらに言えば、1 つのセッション名を使用します。

提唱された 1 つの解決策は、別のテーブルとモデルを使用せず、区別のために何らかの形式の ACL を使用することです。しかし、このようにフロントエンドとバックエンドを混在させるという考えは好きではありません。特に、以前はフロントエンド ユーザーに固有だったすべてのフィールドと関係を管理者ユーザー モデルに突然与えなければならないことを意味するためです。

それは物事を行う正しい方法ではないようです。別の認証システムに切り替えるか、管理者を独自の構成を持つパッケージに分離することはできますが、プロジェクトの範囲では、そのような時間のかかる変更は許可されていません。

あなたが提供できるアイデアを歓迎します。

4

3 に答える 3

5

これも最近遭遇した問題です。特に開発環境と運用環境が既にある場合は、環境全体を分離するのは簡単ではありませんでした。

ただし、この問題を解決するためのパッケージの作成に時間を費やしました。これはhttps://github.com/ollieread/multiauthにあります。パッケージ自体は基本的に Auth のファクトリ クラスであり、複数のインスタンスを使用できるため、次のようにアクセスします。

Auth::admin()->check();
Auth::user()->check();
Auth::whatever()->check();

このパッケージが、このアプローチを探しているあなたや他の人に役立つことを願っています.

于 2013-12-15T12:28:24.583 に答える
2

よくわかりませんが、便利かもしれません。管理者用に別の環境を作成してみませんか。そして、本番用の app/config/admin/session.php と app/config/session.php のようなものがあります (これがデフォルトの環境です)。

ここで環境をセットアップする方法を見ることができますhttp://andrewelkins.com/programming/php/how-to-set-laravel-4-environments/

しかし、私が言ったように、それは単なるアイデアであり、私はそれについて確信が持てません:)

于 2013-12-05T15:51:00.497 に答える