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
にリダイレクトにされることが確認できます。
はじめは右上メニューの Register
リンクよりアカウント作成し
ログインしてください。
以上