[컴][웹][php] Laravel 로 간단한 login 동작 구현

라라벨 시작 하기 / 라라벨로 간단한 홈페이지 / 라라벨로 간단한 페이지 / 라라벨로 간단한 로그인 화면 만들기 / 유저 만들기


Laravel 로 간단한 login 동작 구현

  • laravel 버전 : Laravel Framework 5.4.23


절차

  1. laravel project 생성
  2. Controller 생성
  3. Model 생성
  4. route 설정
  5. Auth 설정
  6. View 만들기
  7. DB Migration



laravel project 생성

test1 이라는 laravel project 를 하나 만든다.
composer create-project laravel/laravel test1

Composer 로 laravel framework project 를 하나 만들면 project directory 에서 아래같은 directory 구조를 볼 수 있다. 이 중에서 app 부분이 우리가 작성할 code 들이 들어가는 곳이다.
  • app\
    • Console\
    • Exceptions\
    • Http\
      • Controllers\
        • Auth\
      • Middleware\
    • Providers\
  • bootstrap\
  • config\
  • database\
  • public\
  • resources\
  • routes\
  • storage\
  • tests\
  • vendor\


Controller 생성

php artisan make:controller ListController

실행 하면 app/Http/Controllers/ListController.php 가 생성된다. 아래에서 view('welcome') 을 지정하면, 기본적으로 아래 순서로 찾게 된다.(참고 : Illuminate/View/FileViewFinder.php)
  1. resources/views/welcome.blade.php
  2. resources/views/welcome.php
  3. resources/views/welcome.css



<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class ListController extends Controller
{
    public function show()
        {
           $characters = [
             'Test1' => 'Test2',
           ];

           return view('welcome')->withCharacters($characters);
        }
}

Model 생성


php artisan make:model TestModel

app/TestModel.php


routes 설정

routes/web.php 에 route 설정을 해주면 된다.

이전버전의 routes.php 가 이리로 옮겨 온 것으로 보면 된다. 실제로는 routes.php 대신에 RouteServiceProvider.php 가 추가되고, RouteServiceProvider에서 web.php 를 호출하고 있다.

<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () {
    return view('welcome');
});



Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');

//
Route::get('/', 'ListController@show');



Auth 설정

php artisan make:auth

자동으로 login(auth) 관련 기능을 추가한다.
  • login
  • logout
  • register
  • password reset
등의 view 가 생성된다.

생성되는 파일들

  • app/Http/Controllers/HomeController.php
  • resources/views/welcome.blade.php
  • resources/views/home.blade.php : dashboard view
  • resources/views/auth/login.blade.php
  • resources/views/auth/register.blade.php : 회원가입 페이지
  • resources/views/auth/passwords/email.blade.php : 패스워드 리셋 confirmation page
  • resources/views/auth/passwords/reset.blade.php : 패스워드 리셋 prompt page
  • resources/views/auth/emails/password.blade.php : 패스워드 리셋 email
  • routes/web.php : 


View 만들기

기본적인 layout 은 아래 경로에 제공된다. 이 녀석을 이용해서 간단한 view(resources\views\welcome.blade.php) 를 하나 만들자.
  • resources\views\layouts\app.blade.php
welcome.blade.php 는 위의 web.php 에서 설정한 route 에 의해 호출되는 show() 안에서 호출된다.
Route::get('/', 'ListController@show');

<!--welcome.blade.php-->
@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row">
        <div class="col-md-10 col-md-offset-1">
            <div class="panel">
                @if(Auth::check())
                    <!-- Table -->
                    <div class="panel-body">
                        You are logged in!
                    </div>

                @endif
                @if(Auth::guest())
                <a href="/login" class="btn btn-info"> You need to login</a>
                @endif
            </div>
        </div>
    </div>
</div>
@endsection



DB Migration

migration 을 해서 db 를 만들어 줄 수 있는데, 이때 .env file 에 db 정보를 setting 해줘야 한다.
  • <project>/.env
기본적으로 db connection 설정 기본 정보는 config/database.php 에서 확인할 수 있다.[ref. 3]
  • config\database.php
이 값들을 직접 수정해도 되고, .env 를 통해 override 할 수 있다.

sqlite3 설정

여기서는 db 로 sqlite3 를 사용할 것이다.

php.ini

먼저 php.ini dptj
extension=php_sqlite3.dll
extension=php_pdo_sqlite.dll
를 추가해 줘야 한다.


sqlite db 생성

sqlite3 을 위해서 일단 아래 path 에 sqlite file 을 하나 만들자.
  • database\database.sqlite : 
    • absolute path 는 c:/a/programming/php/laravel/test1/database/database.sqlite 이다.

laravel 설정

그리고 .env 에 아래같이 설정을 해주자.
DB_CONNECTION=sqlite
DB_DATABASE=c:/a/programming/php/laravel/test1/database/database.sqlite

migrate

php artisan migrate
그러면 아래처럼 table 이 생성된다.





Test

test server 를 실행하고
php artisan serve

localhost:8000 에 접속하면,
  • resources/views/welcome.blade.php
를 보여준다.





References

  1. Creating your first Laravel app and adding authentication
  2. The auth scaffold in Laravel 5.2 - Matt Stauffer on Laravel, PHP, Frontend development
  3. Database: Getting Started - Laravel - The PHP Framework For Web Artisans

댓글 7개:

  1. 포스팅, 잘 보고 갑니다~.

    답글삭제
  2. 많은 도움이 되었습니다.
    감사합니다.

    답글삭제
  3. 작성자가 댓글을 삭제했습니다.

    답글삭제
  4. password.blade.php 이 파일이 생성이 안되는 데 어떻게 하면 되나요~?

    답글삭제
    답글
    1. https://github.com/zhenqing/Laravel/blob/master/resources/views/emails/password.blade.php

      위처럼 github 등에서 찾아 보실 수 있을 듯 합니다.
      참고하세요.

      삭제
  5. 자세한 설명 감사합니다!

    답글삭제