>PHP 프레임워크 >Laravel >Laravel 로그인 시스템을 모바일 로그인으로 변경하는 방법에 대해 이야기하겠습니다.

Laravel 로그인 시스템을 모바일 로그인으로 변경하는 방법에 대해 이야기하겠습니다.

PHPz
PHPz원래의
2023-04-14 15:56:17804검색

Laravel은 실용적이고 사용하기 쉬운 많은 기능을 제공하는 매우 인기 있는 PHP 프레임워크입니다. 그 중 하나는 사용자가 웹사이트에 등록하고 로그인할 수 있도록 하는 인증 시스템입니다. 이번 글에서는 Laravel 로그인 시스템을 모바일 로그인으로 변경하는 방법에 대해 설명하겠습니다.

코딩을 시작하기 전에 Laravel이 설치 및 구성되어 있는지 확인하세요. 그렇지 않은 경우 공식 Laravel 문서에서 자세한 지침을 찾을 수 있습니다.

첫 번째 단계는 사용자의 휴대폰 번호와 비밀번호를 저장할 새 데이터베이스 테이블을 만드는 것입니다. Laravel 마이그레이션을 사용하여 이를 수행할 수 있습니다. 터미널 창을 열고 다음 명령을 입력하세요:

php artisan make:migration create_phone_auth_tablephp artisan make:migration create_phone_auth_table

这将创建一个新的迁移文件,您可以在其中定义新的数据库表。在Laravel中创建一个数据表的方法如下所示:

public function up()
{
    Schema::create('phone_auth', function (Blueprint $table) {
        $table->increments('id');
        $table->string('phone_number')->unique();
        $table->string('password');
        $table->timestamps();
    });
}

在此示例中,我们创建一个名为"phone_auth"的新表,其中包含"id"、"phone_number"、"password"以及"timestamps"列。请注意,我们将"phone_number"列定义为唯一的,以确保不会有重复的手机号码。

接下来,我们需要创建一个新的控制器来处理手机登录。打开终端窗口并输入以下命令:

php artisan make:controller PhoneLoginController

그러면 새 데이터베이스 테이블을 정의할 수 있는 새 마이그레이션 파일이 생성됩니다. Laravel에서 데이터 테이블을 생성하는 방법은 다음과 같습니다:

public function showLoginForm()
{
    return view('auth.phone-login');
}

public function login(Request $request)
{
    $this->validate($request, [
        'phone_number' => 'required',
        'password' => 'required',
    ]);

    $phone_number = $request->input('phone_number');
    $password = $request->input('password');

    if (Auth::attempt(['phone_number' => $phone_number, 'password' => $password])) {
        return redirect()->intended('/');
    }

    return redirect()->back()->withInput()->withErrors(['message' => 'Phone number or password is incorrect.']);
}
이 예에서는 "id", "phone_number", "password" 및 "timestamps" 목록을 포함하는 "phone_auth"라는 새 테이블을 생성합니다. 중복된 전화번호가 없도록 "phone_number" 열을 고유하게 정의합니다.

다음으로 모바일 로그인을 처리할 새 컨트롤러를 만들어야 합니다. 터미널 창을 열고 다음 명령을 입력하세요:

php artisan make:controller PhoneLoginController

그런 다음 "app/Http/Controllers/PhoneLoginController.php" 파일을 열고 다음 코드를 파일 끝 :

@extends('layouts.app')

@section('content')
    <div class="container">
        <div class="row justify-content-center">
            <div class="col-md-8">
                <div class="card">
                    <div class="card-header">{{ __('Phone Login') }}</div>

                    <div class="card-body">
                        <form method="POST" action="{{ route(&#39;phone.login&#39;) }}">
                            @csrf

                            <div class="form-group row">
                                <label for="phone_number" class="col-md-4 col-form-label text-md-right">{{ __('Phone Number') }}</label>

                                <div class="col-md-6">
                                    <input id="phone_number" type="text" class="form-control{{ $errors->has('phone_number') ? ' is-invalid' : '' }}" name="phone_number" value="{{ old('phone_number') }}" required autofocus>

                                    @if ($errors->has('phone_number'))
                                        <span class="invalid-feedback" role="alert">
                                            <strong>{{ $errors->first('phone_number') }}</strong>
                                        </span>
                                    @endif
                                </div>
                            </div>

                            <div class="form-group row">
                                <label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label>

                                <div class="col-md-6">
                                    <input id="password" type="password" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" name="password" required>

                                    @if ($errors->has('password'))
                                        <span class="invalid-feedback" role="alert">
                                            <strong>{{ $errors->first('password') }}</strong>
                                        </span>
                                    @endif
                                </div>
                            </div>

                            <div class="form-group row mb-0">
                                <div class="col-md-6 offset-md-4">
                                    <button type="submit" class="btn btn-primary">
                                        {{ __('Login') }}
                                    </button>
                                </div>
                            </div>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>
@endsection
이 코드에서는 "showLoginForm"과 "login"이라는 두 가지 메서드를 정의합니다. "showLoginForm"은 사용자가 휴대폰 번호와 비밀번호를 입력할 수 있는 제출 버튼과 두 개의 텍스트 상자가 있는 양식이 포함된 뷰를 반환합니다. "login" 메소드는 사용자의 입력 데이터를 검증하고 Auth 클래스를 사용하여 사용자 로그인을 시도합니다. 로그인에 성공하면 사용자는 홈 페이지로 리디렉션됩니다. 그렇지 않으면 사용자에게 오류 메시지가 표시됩니다.

이제 새로운 보기 파일 "auth.phone-login"을 생성해야 합니다. "Laravel/resources/views/auth" 폴더에 새 파일을 만들고 이름을 "phone-login.blade.php"로 지정합니다. 블레이드 엔진은 Laravel에서 뷰를 렌더링하고 강력한 템플릿 기능을 제공하는 데 사용됩니다. 이 파일에 다음 HTML 및 양식 코드를 추가하세요.

Route::get('phone-login', 'PhoneLoginController@showLoginForm');
Route::post('phone-login', 'PhoneLoginController@login')->name('phone.login');
이 보기에는 두 개의 텍스트 상자가 있는 양식과 사용자가 휴대폰 번호와 비밀번호를 입력할 수 있는 제출 버튼이 포함되어 있습니다. 양식 태그의 "route" 지시어를 사용하여(Route 지시어는 URL 및 HTML 양식 입력 자동 생성을 포함한 몇 가지 편리한 기능을 제공) 양식의 제출 주소를 "phone.login" 경로로 지정합니다. 🎜🎜이제 마지막 단계는 "웹" 경로 파일에 새 경로를 추가하는 것입니다. Routes/web.php 파일을 열고 파일 끝에 다음 코드를 추가하십시오: 🎜rrreee🎜 이렇게 하면 "phone-login" 및 "phone-login" POST 경로라는 두 개의 새로운 경로가 추가됩니다. 첫 번째 경로는 사용자가 휴대폰 번호와 비밀번호를 입력할 수 있는 양식을 렌더링하는 데 사용됩니다. 두 번째 경로는 양식 제출을 처리하고 사용자 입력 데이터의 유효성을 검사합니다. 🎜🎜축하합니다. 이제 Laravel 로그인 시스템을 모바일 로그인으로 성공적으로 변경했습니다. 이는 필요에 따라 변경하고 확장할 수 있는 간단한 구현일 뿐입니다. 더 나은 사용자 경험을 제공하기 위해 이메일, 인증 코드 등 더 많은 필드를 추가할 수 있습니다. 🎜

위 내용은 Laravel 로그인 시스템을 모바일 로그인으로 변경하는 방법에 대해 이야기하겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.