LoginSignup
25
27

More than 5 years have passed since last update.

Laravel 5 管理画面ログイン認証ページをscafoldで作成♪ (10分以内)

Last updated at Posted at 2015-07-08

Laravel 5 管理画面ログイン認証

概要

  • 簡易的な管理画面が欲しい!
  • 社内にPHPerが多い!
  • migration機能欲しい!

ということで最近流行りのフルスタックFW Laravelを使って管理画面ログイン認証まで作ってみました♪

ちなみに

Laravel 5.1では標準機能であったログイン認証ページがインストール時にはありませんでした。
そのため、Scafoldで手軽に作成することとしました。

環境情報

  • MacOS 10.10.4 Yosemite
  • MAMP
  • Laravel 5.1
  • PHP 5.5
  • MySQL 5.5

※PHP5.3では動きませんでした(TへT)

Laravelでプロジェクト作成

以下コマンドでプロジェクト作成します。

$ composer create-project laravel/laravel --prefer-dist

laravelというプロジェクトが作成されていることが確認できる。

プロジェクト名変更

$ mv laravel project_name

ドメイン修正

  • config/app.php

※利用される環境に合わせて適宜修正してください。

'url' => 'http://localhost', # 適宜修正

DB設定修正

  • config/database.php

※利用される環境に合わせて適宜修正してください。

以下の箇所で利用するDBタイプを修正してください。

'default' => env('DB_CONNECTION', 'mysql'),

...
...

'connections' => [

        'sqlite' => [
            'driver'   => 'sqlite',
            'database' => storage_path('database.sqlite'),
            'prefix'   => '',
        ],

        'mysql' => [
            'driver'    => 'mysql',
            'host'      => env('DB_HOST', 'localhost'),
            'database'  => env('DB_DATABASE', 'forge'),
            'username'  => env('DB_USERNAME', 'forge'),
            'password'  => env('DB_PASSWORD', ''),
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
        ],

        'pgsql' => [
            'driver'   => 'pgsql',
            'host'     => env('DB_HOST', 'localhost'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset'  => 'utf8',
            'prefix'   => '',
            'schema'   => 'public',
        ],

        'sqlsrv' => [
            'driver'   => 'sqlsrv',
            'host'     => env('DB_HOST', 'localhost'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset'  => 'utf8',
            'prefix'   => '',
        ],

    ],

MAMPでMySQLを利用している場合は
unix_socket を設定する必要があります。


        'mysql' => [
            'driver'       => 'mysql',
            'host'         => env('DB_HOST', 'localhost'),
            'unix_socket'  => '/Applications/MAMP/tmp/mysql/mysql.sock',   # 追加
            'database'     => env('DB_DATABASE', 'forge'),
            'username'     => env('DB_USERNAME', 'forge'),
            'password'     => env('DB_PASSWORD', ''),
            'charset'      => 'utf8',
            'collation'    => 'utf8_unicode_ci',
            'prefix'       => '',
            'strict'       => false,
        ],

.env のDBログイン情報修正

以下を修正してください

DB_HOST=localhost
DB_DATABASE=fashionpick
DB_USERNAME=root
DB_PASSWORD=root

migration 機能で認証ユーザ情報テーブル作成

  • Laravel5.1デフォルトでdatabase/migrations/配下に認証に必要なテーブルのCREATE情報が記述されています。
$ cd /path/to/project
$ php artisan migrate

上記コマンド実行で以下3テーブルが作成されます。

Tables
migrations
password_resets
users

Scaffoldで認証ページ作成

conf/app.php でDB接続設定をしている前提で進めます。

bestmomo/scafold インストール
$ cd /path/to/project_name
$ composer require bestmomo/scafold:dev-master
config/app.phpに追加
'providers' => [
   ...
   ...
   Bestmomo\Scafold\ScafoldServiceProvider::class,  # 追加
 ],

viewやassetsをパッケージからアプリのディレクトリにコピー

$ php artisan vendor:publish

Copied Directory [/vendor/bestmomo/scafold/views] To [/resources/views]
Copied Directory [/vendor/bestmomo/scafold/views/auth] To [/resources/views/auth]
Copied Directory [/vendor/bestmomo/scafold/views/emails] To [/resources/views/emails]
Copied Directory [/vendor/bestmomo/scafold/public] To [/public]
Publishing complete for tag []!
  • 以下のように作成されていることが確認できます。
public/
├── css
│   └── app.css
└── fonts
     ├── glyphicons-halflings-regular.eot
     ├── glyphicons-halflings-regular.svg
     ├── glyphicons-halflings-regular.ttf
     ├── glyphicons-halflings-regular.woff
     └── glyphicons-halflings-regular.woff2

resources/views/
├── app.blade.php
├── auth
│   ├── login.blade.php
│   ├── password.blade.php
│   ├── register.blade.php
│   └── reset.blade.php
├── emails
│   └── password.blade.php
├── errors
│   └── 503.blade.php
├── home.blade.php
├── vendor
└── welcome.blade.php

ルート一覧確認

$ php artisan route:list



+--------+--------------------------------+-------------------------------------------------------+------+------------------------------------------------------------+------------+
| Domain | Method                         | URI                                                   | Name | Action                                                     | Middleware |
+--------+--------------------------------+-------------------------------------------------------+------+------------------------------------------------------------+------------+
|        | GET|HEAD                       | /                                                     |      | Closure                                                    |            |
|        | POST                           | auth/login/{one?}/{two?}/{three?}/{four?}/{five?}     |      | App\Http\Controllers\Auth\AuthController@postLogin         | guest      |
|        | GET|HEAD                       | auth/login/{one?}/{two?}/{three?}/{four?}/{five?}     |      | App\Http\Controllers\Auth\AuthController@getLogin          | guest      |
|        | GET|HEAD                       | auth/logout/{one?}/{two?}/{three?}/{four?}/{five?}    |      | App\Http\Controllers\Auth\AuthController@getLogout         |            |
|        | GET|HEAD                       | auth/register/{one?}/{two?}/{three?}/{four?}/{five?}  |      | App\Http\Controllers\Auth\AuthController@getRegister       | guest      |
|        | POST                           | auth/register/{one?}/{two?}/{three?}/{four?}/{five?}  |      | App\Http\Controllers\Auth\AuthController@postRegister      | guest      |
|        | GET|HEAD|POST|PUT|PATCH|DELETE | auth/{_missing}                                       |      | App\Http\Controllers\Auth\AuthController@missingMethod     | guest      |
|        | GET|HEAD                       | home                                                  |      | \Bestmomo\Scafold\Http\Controllers\HomeController@index    | auth       |
|        | POST                           | password/email/{one?}/{two?}/{three?}/{four?}/{five?} |      | App\Http\Controllers\Auth\PasswordController@postEmail     | guest      |
|        | GET|HEAD                       | password/email/{one?}/{two?}/{three?}/{four?}/{five?} |      | App\Http\Controllers\Auth\PasswordController@getEmail      | guest      |
|        | POST                           | password/reset/{one?}/{two?}/{three?}/{four?}/{five?} |      | App\Http\Controllers\Auth\PasswordController@postReset     | guest      |
|        | GET|HEAD                       | password/reset/{one?}/{two?}/{three?}/{four?}/{five?} |      | App\Http\Controllers\Auth\PasswordController@getReset      | guest      |
|        | GET|HEAD|POST|PUT|PATCH|DELETE | password/{_missing}                                   |      | App\Http\Controllers\Auth\PasswordController@missingMethod | guest      |
+--------+--------------------------------+-------------------------------------------------------+------+------------------------------------------------------------+------------+
認証ページへアクセスする!
  • http://(設定したドメイン)/auth/login にアクセスすると以下のように表示されることを確認できます。

http://(設定したドメイン)/home にアクセスしてもhttp://(設定したドメイン)/auth/login にリダイレクトにされることが確認できます。

Imgur

はじめは右上メニューの Registerリンクよりアカウント作成し
ログインしてください。

以上

25
27
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
25
27