> PHP 프레임워크 > Laravel > laravel은 등록과 로그인을 구현합니다.

laravel은 등록과 로그인을 구현합니다.

WBOY
풀어 주다: 2023-05-21 09:31:07
원래의
1141명이 탐색했습니다.

Laravel은 우아한 구문, 강력한 기능 및 풍부한 문서를 갖춘 일반적으로 사용되는 PHP 프레임워크로 많은 PHP 개발자가 선택하는 프레임워크가 되었습니다. 이 글에서는 Laravel 프레임워크를 사용하여 등록 및 로그인 기능을 구현하는 방법을 소개합니다.

1. Laravel 애플리케이션 만들기
등록 및 로그인 기능을 구현하기 전에 먼저 Laravel 애플리케이션을 만들어야 합니다. Laravel에서 공식적으로 제공하는 Composer 명령을 사용하여 아래와 같이 새로운 애플리케이션을 생성할 수 있습니다:

composer create-project --prefer-dist laravel/laravel your-project-name
로그인 후 복사

여기서 your-project-name은 생성하려는 애플리케이션의 이름입니다. your-project-name是你想要创建的应用程序的名称。

创建完成后,进入应用程序目录并启动本地服务器:

cd your-project-name
php artisan serve
로그인 후 복사

在浏览器中输入http://localhost:8000,即可访问应用程序的欢迎页面。

二、创建认证系统
在实现注册和登录功能之前,需要先创建一个基本的认证系统。Laravel提供了make:auth Artisan命令,可以快速生成认证相关的视图和控制器。

php artisan make:auth
로그인 후 복사

执行上述命令后,Laravel会自动创建registerloginlogout等相关的视图和控制器,并将它们添加到应用程序中。此外,Laravel还会在数据库中创建相关的用户和密码重置表。

三、创建数据库表
默认情况下,Laravel使用MySQL数据库。在本例中,需要创建一个名为users的数据表来存储用户数据。可以使用以下Artisan命令来创建该表:

php artisan make:migration create_users_table --create=users
로그인 후 복사

执行上述命令后,Laravel会在应用程序的database/migrations目录中创建一个名为create_users_table的迁移文件。打开该文件并修改up方法,如下所示:

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->string('name');
        $table->string('email')->unique();
        $table->timestamp('email_verified_at')->nullable();
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
    });
}
로그인 후 복사

上述迁移文件定义了users数据表的字段,包括name(用户名)、email(电子邮件地址)、password(密码)等等。

在修改完迁移文件之后,需要执行以下Artisan命令,来实际创建users数据表:

php artisan migrate
로그인 후 복사

四、创建注册页面
接下来,需要创建一个注册页面,让用户可以输入自己的用户名、电子邮件地址和密码。打开resources/views/auth/register.blade.php文件,可以看到Laravel已经为我们创建了一个基本的注册表单。

此时,我们需要删除一些字段,同时增加必须填写的name字段和确认密码password_confirmation字段。修改后的代码如下所示:

<form method="POST" action="{{ route('register') }}">
    @csrf

    <div>
        <label for="name">{{ __('Name') }}</label>

        <div>
            <input id="name" type="text" name="name" value="{{ old('name') }}" required autofocus>
        </div>
    </div>

    <div>
        <label for="email">{{ __('E-Mail Address') }}</label>

        <div>
            <input id="email" type="email" name="email" value="{{ old('email') }}" required>
        </div>
    </div>

    <div>
        <label for="password">{{ __('Password') }}</label>

        <div>
            <input id="password" type="password" name="password" required>
        </div>
    </div>

    <div>
        <label for="password-confirm">{{ __('Confirm Password') }}</label>

        <div>
            <input id="password-confirm" type="password" name="password_confirmation" required>
        </div>
    </div>

    <div>
        <button type="submit">
            {{ __('Register') }}
        </button>
    </div>
</form>
로그인 후 복사

五、处理注册请求
现在,注册表单已经创建,但是当用户提交表单时并不会生效。所以我们需要修改app/Http/Controllers/Auth/RegisterController.php文件来处理注册请求。

public function store(Request $request)
{
    $this->validate($request, [
        'name' => 'required|string|max:255',
        'email' => 'required|string|email|unique:users|max:255',
        'password' => 'required|string|min:8|confirmed',
    ]);

    User::create([
        'name' => $request->name,
        'email' => $request->email,
        'password' => bcrypt($request->password),
    ]);

    return redirect()->intended('dashboard');
}
로그인 후 복사

上述代码定义了一个名为store()的方法,此方法用于处理注册请求。首先,validate()方法会验证请求的数据。如果验证通过,则使用User模型来创建一个新用户,并对密码进行加密。最后,重定向到应用程序的仪表板页面。

六、创建登录页面
接下来,需要创建一个登录页面,让用户可以输入自己的已注册电子邮件地址和密码。打开resources/views/auth/login.blade.php文件,可以看到Laravel已经为我们创建了一个基本的登录表单。

七、处理登录请求
注册表单已经创建,但是当用户提交表单时并不会生效。所以我们需要修改app/Http/Controllers/Auth/LoginController.php文件来处理登录请求。

public function store(Request $request)
{
    $credentials = $request->only('email', 'password');

    if (Auth::attempt($credentials)) {
        $request->session()->regenerate();

        return redirect()->intended('dashboard');
    }

    return back()->withErrors([
        'email' => 'The provided credentials do not match our records.',
    ]);
}
로그인 후 복사

上述代码定义了一个名为store()的方法,此方法用于处理登录请求。首先,attempt()方法会尝试使用用户提供的凭据进行身份验证。如果验证成功,则生成新会话并将用户重定向到应用程序的仪表板页面。如果失败,则会使用back()方法将用户重定向回原始登录页面,并显示错误消息。

八、设置认证中间件
一旦注册和登录功能已经实现,需要保护应用程序的某些路由,只有已认证的用户才能访问。在Laravel中,可以使用中间件来实现此目的。Laravel提供了一个名为auth的中间件,它会验证用户是否已经登录到应用程序。

Laravel默认情况下将auth中间件应用于任何使用auth路由名称的路由。可以使用以下代码来指定一个或多个中间件:

Route::get('/dashboard', function () {
    // 仅允许已登录用户访问
})->middleware(['auth']);
로그인 후 복사

现在,只有已认证的用户才能访问/dashboard

생성 후 애플리케이션 디렉토리를 입력하고 로컬 서버를 시작하세요.

rrreee
브라우저에 http://localhost:8000를 입력하여 애플리케이션의 시작 페이지에 액세스하세요.

🎜2. 인증 시스템 만들기🎜 등록 및 로그인 기능을 구현하기 전에 기본 인증 시스템을 만들어야 합니다. Laravel은 인증 관련 뷰와 컨트롤러를 빠르게 생성하기 위해 make:auth Artisan 명령을 제공합니다. 🎜rrreee🎜위 명령을 실행하면 Laravel은 자동으로 register, loginlogout과 같은 관련 뷰와 컨트롤러를 생성하고 이를 응용 프로그램. 또한 Laravel은 데이터베이스에 관련 사용자 및 비밀번호 재설정 테이블을 생성합니다. 🎜🎜3. 데이터베이스 테이블 생성🎜 기본적으로 Laravel은 MySQL 데이터베이스를 사용합니다. 이 예에서는 사용자 데이터를 저장하기 위해 users라는 데이터 테이블을 생성해야 합니다. 테이블은 다음 Artisan 명령어를 사용하여 생성할 수 있습니다: 🎜rrreee🎜위 명령어를 실행한 후 Laravel은 애플리케이션의 database/migrations 디렉터리 문서에 create_users_table이라는 이름의 마이그레이션을 생성합니다. 파일을 열고 다음과 같이 up 메서드를 수정합니다. 🎜rrreee🎜위 마이그레이션 파일은 name을 포함하여 users 데이터 테이블의 필드를 정의합니다. ( 사용자 이름), email(이메일 주소), password(비밀번호) 등 🎜🎜마이그레이션 파일을 수정한 후 실제로 users 데이터 테이블을 생성하려면 다음 Artisan 명령을 실행해야 합니다. 🎜rrreee🎜넷째, 등록 페이지 생성🎜다음으로 등록 페이지를 생성해야 합니다. 사용자가 사용자 이름, 이메일 주소 및 비밀번호를 입력할 수 있도록 합니다. resources/views/auth/register.blade.php 파일을 열면 Laravel이 기본 등록 양식을 생성한 것을 볼 수 있습니다. 🎜🎜이때 일부 필드를 삭제하고 반드시 입력해야 하는 이름 필드와 비밀번호 확인 password_confirmation 필드를 추가해야 합니다. 수정된 코드는 다음과 같습니다. 🎜rrreee🎜 5. 등록 요청 처리🎜 이제 등록 양식이 생성되었지만 사용자가 양식을 제출해도 적용되지 않습니다. 따라서 등록 요청을 처리하려면 app/Http/Controllers/Auth/RegisterController.php 파일을 수정해야 합니다. 🎜rrreee🎜위 코드는 등록 요청을 처리하는 데 사용되는 store()라는 메서드를 정의합니다. 먼저 validate() 메서드는 요청된 데이터의 유효성을 검사합니다. 확인이 통과되면 User 모델을 사용하여 새 사용자를 생성하고 비밀번호를 암호화합니다. 마지막으로 애플리케이션의 대시보드 페이지로 리디렉션됩니다. 🎜🎜 6. 로그인 페이지 만들기 🎜 다음으로, 사용자가 등록된 이메일 주소와 비밀번호를 입력할 수 있는 로그인 페이지를 만들어야 합니다. resources/views/auth/login.blade.php 파일을 열면 Laravel이 기본 로그인 양식을 생성한 것을 볼 수 있습니다. 🎜🎜7. 로그인 요청 처리🎜등록 양식이 생성되었지만 사용자가 양식을 제출해도 적용되지 않습니다. 따라서 로그인 요청을 처리하려면 app/Http/Controllers/Auth/LoginController.php 파일을 수정해야 합니다. 🎜rrreee🎜위 코드는 로그인 요청을 처리하는 데 사용되는 store()라는 메서드를 정의합니다. 먼저 attempt() 메서드는 사용자가 제공한 자격 증명을 사용하여 인증을 시도합니다. 확인이 성공하면 새 세션이 생성되고 사용자는 애플리케이션의 대시보드 페이지로 리디렉션됩니다. 이것이 실패하면 back() 메서드를 사용하여 오류 메시지와 함께 사용자를 원래 로그인 페이지로 다시 리디렉션합니다. 🎜🎜 8. 인증 미들웨어 설정 🎜 등록 및 로그인 기능이 구현되면 인증된 사용자만 액세스할 수 있도록 애플리케이션의 특정 경로를 보호해야 합니다. Laravel에서는 이를 달성하기 위해 미들웨어를 사용할 수 있습니다. Laravel은 사용자가 애플리케이션에 로그인했는지 확인하는 auth라는 미들웨어를 제공합니다. 🎜🎜Laravel은 기본적으로 auth 경로 이름을 사용하는 모든 경로에 auth 미들웨어를 적용합니다. 다음 코드를 사용하여 하나 이상의 미들웨어를 지정할 수 있습니다. 🎜rrreee🎜 이제 인증된 사용자만 /dashboard 경로에 액세스할 수 있습니다. 🎜🎜요약🎜이 글에서는 Laravel 프레임워크를 사용하여 등록 및 로그인 기능을 구현하는 방법을 소개합니다. Laravel 프레임워크의 도움으로 안전하고 안정적인 웹 애플리케이션을 빠르고 쉽게 구축하고 웹 애플리케이션 개발 프로세스를 촉진할 수 있습니다. 초보자이든 숙련된 개발자이든 Laravel 프레임워크를 사용하여 자신만의 웹 애플리케이션을 구축해 볼 수 있습니다. 🎜

위 내용은 laravel은 등록과 로그인을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿