目次
1. 認証スキャフォールディングを生成します
2. フロントエンド ユーザー ログインを実装します
3. 認証構成ファイルを編集します
4. バックグラウンド ユーザー モデルを作成します
5. バックグラウンド ユーザー認証ルートとコントローラー を定義します。
6. ファイルの作成と変更を表示します
7 、バックグラウンド ユーザー認証を実現
ホームページ バックエンド開発 PHPチュートリアル Laravel 5.2 新機能シリーズ -- マルチユーザー認証機能の詳細な実装

Laravel 5.2 新機能シリーズ -- マルチユーザー認証機能の詳細な実装

Jun 20, 2016 pm 12:36 PM

Laravel 5.2 では、マルチユーザー認証のサポートが追加され、異なるデータテーブルユーザー (フロントエンドユーザーとバックエンドユーザーなど) が同時にログインして認証できるようになります。次に、マルチユーザーのログインと登録機能の実装について簡単に紹介します。

1. 認証スキャフォールディングを生成します

まず、Laravel 5.2 が提供する認証スキャフォールディングを使用して初期化作業を完了します:

php artisan make:auth
ログイン後にコピー

The Artisanコマンドは、ユーザー認証に必要なルート、ビュー、および HomeController を生成します:

ルーティング ファイル Routes.php を表示すると、ファイルが更新されていることがわかります:

Route::group(['middleware' => 'web'], function () {    Route::auth();    Route::get('/home', 'HomeController@index');});
ログイン後にコピー

このうち Route ::auth() は登録ログインルートを定義しており、/home は認証通過後のジャンプルートとなっています。

2. フロントエンド ユーザー ログインを実装します

次に、最初にフロントエンド ユーザー ログインを実装します。これは、Laravel に付属する User ユーザー ログインです。上記のスキャフォールディングを通じて、認証に必要なすべてのコードが生成されました。あとは、移行コマンドを使用してユーザー認証関連のテーブルを作成するだけです。

php artisan migrate
ログイン後にコピー
ログイン後にコピー

コマンドが実行された後、 users テーブルとpassword_resets テーブルが生成され、それぞれユーザー マスター テーブルとパスワード リセット テーブルが生成されます。

次に、ブラウザに http://laravel.app/register と入力して新しいユーザーを登録します。

登録が成功した後、 test という名前のユーザーを作成します。 http://laravel.app/home と入力すると、ログインしていることがわかります:

3. 認証構成ファイルを編集します

マルチユーザー認証を実装するには、まず認証構成ファイル auth.php を構成する必要があります。ここで実装する機能はフロントエンドとバックエンドのユーザー ログインであるため、対応する構成は次のとおりです:

<?phpreturn [    'defaults' => [        'guard' => 'web',        'passwords' => 'users',    ],    'guards' => [        'web' => [            'driver' => 'session',            'provider' => 'users',        ],        'admin' => [            'driver' => 'session',            'provider' => 'admins',        ],        'api' => [            'driver' => 'token',            'provider' => 'users',        ],    ],    'providers' => [        'users' => [            'driver' => 'eloquent',            'model' => App\User::class,        ],        'admins' => [            'driver' => 'eloquent',            'model' => App\Admin::class,        ],    ],    'passwords' => [        'users' => [            'provider' => 'users',            'email' => 'auth.emails.password',            'table' => 'password_resets',           'expire' => 60,        ],    ],];
ログイン後にコピー

認証はガードとプロバイダーで構成されているため (ユーザー認証ドキュメントを参照)、これら 2 つの設定項目にそれぞれ admin および admins オプションを追加しました。

4. バックグラウンド ユーザー モデルを作成します

次に、バックグラウンド ユーザー ログインを実装します。まず、次の Artisan コマンドを使用してバックグラウンド ユーザー モデルを生成します。

php artisan make:model Admin --migration
ログイン後にコピー
--migration オプションを使用すると、対応するユーザー テーブル管理者が生成されます。このデータ テーブルのフィールドがユーザーと同じになるように定義します。

Schema::create('admins', function (Blueprint $table) {    $table->increments('id');    $table->string('name');    $table->string('email')->unique();    $table->string('password', 60);    $table->rememberToken();    $table->timestamps();});
ログイン後にコピー
次に、次のコマンドを実行してテーブルを生成します。移行コマンド:

php artisan migrate
ログイン後にコピー
ログイン後にコピー
次に、Admin モデル クラスを次のように更新します。

<?phpnamespace App;use Illuminate\Foundation\Auth\User as Authenticatable;class Admin extends Authenticatable{    /**     * The attributes that are mass assignable.     *     * @var array     */    protected $fillable = [        'name', 'email', 'password',    ];    /**     * The attributes excluded from the model's JSON form.     *     * @var array     */    protected $hidden = [        'password', 'remember_token',    ];}
ログイン後にコピー

5. バックグラウンド ユーザー認証ルートとコントローラー を定義します。

次に、バックグラウンド ユーザー認証ルートを定義します。routes.php コードを次のように変更します。

Route::group(['middleware' => ['web']], function () {    Route::auth();    Route::get('home', 'HomeController@index');    Route::get('admin/login', 'Admin\AuthController@getLogin');    Route::post('admin/login', 'Admin\AuthController@postLogin');    Route::get('admin/register', 'Admin\AuthController@getRegister');    Route::post('admin/register', 'Admin\AuthController@postRegister');    Route::get('admin', 'AdminController@index');});
ログイン後にコピー
次に、Artisan コマンドを使用して、対応するコントローラーを作成します。

php artisan make:controller Admin/AuthControllerphp artisan make:controller AdminController
ログイン後にコピー
Edit Admin /AuthController.php コードを次のように編集します。

<?phpnamespace App\Http\Controllers\Admin;use App\Admin;use Validator;use App\Http\Controllers\Controller;use Illuminate\Foundation\Auth\ThrottlesLogins;use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;class AuthController extends Controller{    use AuthenticatesAndRegistersUsers, ThrottlesLogins;    protected $redirectTo = '/admin';    protected $guard = 'admin';    protected $loginView = 'admin.login';    protected $registerView = 'admin.register';    public function __construct()    {        $this->middleware('guest:admin', ['except' => 'logout']);    }    protected function validator(array $data)    {        return Validator::make($data, [            'name' => 'required|max:255',            'email' => 'required|email|max:255|unique:admins',            'password' => 'required|confirmed|min:6',        ]);    }    protected function create(array $data)    {        return Admin::create([            'name' => $data['name'],            'email' => $data['email'],            'password' => bcrypt($data['password']),        ]);    }}
ログイン後にコピー
AdminController.php コードを次のように編集します。

<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;use App\Http\Requests;use App\Http\Controllers\Controller;use Auth;class AdminController extends Controller{    public function __construct()    {        $this->middleware('auth:admin');    }    public function index()    {        $admin = Auth::guard('admin')->user();        return $admin->name;    }}
ログイン後にコピー

6. ファイルの作成と変更を表示します

最後に、バックグラウンド ユーザー認証に対応するビュー ファイルを作成する必要があります。ここでは、フロントエンド ユーザー ビュー テンプレートをコピーして少し変更します。

cp -r resources/views/auth resources/views/admin
ログイン後にコピー
ログインと登録を変更します。 resource/views/admin ディレクトリの下のフォーム送信アドレス:

/login -> /admin/login/register -> /admin/register
ログイン後にコピー

7 、バックグラウンド ユーザー認証を実現

http://laravel.app/admin/ にアクセスしてください。ブラウザに登録すると、登録ページも表示されます:

1 つ登録する ユーザー名 admin のユーザーが登録に成功すると、ページは http://laravel.app にジャンプします/admin、認証が成功したことを示します。

これで表ユーザーと裏ユーザーの同時ログイン認証機能が完成しました。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

セッションのハイジャックはどのように機能し、どのようにPHPでそれを軽減できますか? セッションのハイジャックはどのように機能し、どのようにPHPでそれを軽減できますか? Apr 06, 2025 am 12:02 AM

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

PHPのさまざまなエラータイプを説明します(通知、警告、致命的なエラー、解析エラー)。 PHPのさまざまなエラータイプを説明します(通知、警告、致命的なエラー、解析エラー)。 Apr 08, 2025 am 12:03 AM

PHPには4つの主要なエラータイプがあります。1。notice:わずかなものは、未定義の変数へのアクセスなど、プログラムを中断しません。 2。警告:通知よりも深刻で、ファイルを含むなど、プログラムを終了しません。 3。ファタラー:最も深刻なのは、機能を呼び出すなど、プログラムを終了します。 4。ParseError:構文エラーは、エンドタグの追加を忘れるなど、プログラムの実行を防ぎます。

PHPとPython:2つの一般的なプログラミング言語を比較します PHPとPython:2つの一般的なプログラミング言語を比較します Apr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

HTTPリクエストメソッド(取得、投稿、配置、削除など)とは何ですか?それぞれを使用する必要がありますか? HTTPリクエストメソッド(取得、投稿、配置、削除など)とは何ですか?それぞれを使用する必要がありますか? Apr 09, 2025 am 12:09 AM

HTTPリクエストメソッドには、それぞれリソースを取得、送信、更新、削除するために使用されるGET、POST、PUT、および削除が含まれます。 1. GETメソッドは、リソースを取得するために使用され、読み取り操作に適しています。 2. POSTメソッドはデータの送信に使用され、新しいリソースを作成するためによく使用されます。 3. PUTメソッドは、リソースの更新に使用され、完全な更新に適しています。 4.削除メソッドは、リソースの削除に使用され、削除操作に適しています。

PHPでの安全なパスワードハッシュ(例:Password_hash、password_verify)を説明します。 MD5またはSHA1を使用してみませんか? PHPでの安全なパスワードハッシュ(例:Password_hash、password_verify)を説明します。 MD5またはSHA1を使用してみませんか? Apr 17, 2025 am 12:06 AM

PHPでは、Password_hashとpassword_verify関数を使用して安全なパスワードハッシュを実装する必要があり、MD5またはSHA1を使用しないでください。 1)password_hashセキュリティを強化するために、塩値を含むハッシュを生成します。 2)password_verifyハッシュ値を比較して、パスワードを確認し、セキュリティを確保します。 3)MD5とSHA1は脆弱であり、塩の値が不足しており、最新のパスワードセキュリティには適していません。

PHP:Web開発の重要な言語 PHP:Web開発の重要な言語 Apr 13, 2025 am 12:08 AM

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

PHP 7.4で導入された矢印関数(短い閉鎖)を説明します。 PHP 7.4で導入された矢印関数(短い閉鎖)を説明します。 Apr 06, 2025 am 12:01 AM

矢印関数はPhp7.4で導入され、短い閉鎖の単純化された形式です。 1)=>演算子を使用して定義され、機能を省略し、キーワードを使用します。 2)矢印関数は、キーワードを使用せずに現在のスコープ変数を自動的にキャプチャします。 3)コールバック関数と短い計算でしばしば使用され、コードのシンプルさと読みやすさを改善します。

アクション中のPHP:実際の例とアプリケーション アクション中のPHP:実際の例とアプリケーション Apr 14, 2025 am 12:19 AM

PHPは、電子商取引、コンテンツ管理システム、API開発で広く使用されています。 1)eコマース:ショッピングカート機能と支払い処理に使用。 2)コンテンツ管理システム:動的コンテンツの生成とユーザー管理に使用されます。 3)API開発:RESTFUL API開発とAPIセキュリティに使用されます。パフォーマンスの最適化とベストプラクティスを通じて、PHPアプリケーションの効率と保守性が向上します。

See all articles