Laravel 5 관리 화면 로그인 인증 페이지를 scafold로 작성♪ (10분 이내)

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개의 테이블이 생성됩니다.


    테이블


    migrations

    password_resets

    사용자


    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 링크에서 계정 만들기
    로그인하세요.

    이상

    좋은 웹페이지 즐겨찾기