Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

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リンクよりアカウント作成し
ログインしてください。

以上

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away