>PHP 프레임워크 >Laravel >laravel 프레임워크 로그인 등록 프로세스

laravel 프레임워크 로그인 등록 프로세스

WBOY
WBOY원래의
2023-05-29 09:58:071065검색

Laravel 프레임워크는 PHP 언어를 기반으로 개발된 우수하고 인기 있는 웹 애플리케이션 개발 프레임워크입니다. Laravel 프레임워크는 매우 완벽한 사용자 로그인 및 등록 시스템을 갖추고 있습니다. 이 등록 및 로그인 시스템은 사용자에 대한 기본 인증 기능을 구현할 수 있으며 사용자 권한 관리, 비밀번호 재설정, 이메일 확인과 같은 일련의 인증 작업을 수행할 수 있습니다. 등. . 다음 글에서는 Laravel 프레임워크의 로그인 및 등록 과정에 대해 자세히 설명하겠습니다.

  1. 사용자 등록 과정

먼저 사용자의 기본 정보를 저장할 사용자 테이블을 생성해야 합니다. Laravel에서 제공하는 "make:model" 명령을 사용하여 이 모델을 생성할 수 있습니다. 터미널에 다음 명령을 입력하세요.

php artisan make:model User -m

이 명령은 app 디렉터리에 User 모델을 생성하고 데이터베이스에 users를 생성합니다. 테이블. User 모델에서는 사용자가 사용하는 인증 방법을 지정해야 합니다. Laravel 프레임워크는 모델의 guard 속성에서 설정할 수 있는 다양한 사용자 인증 방법을 제공합니다: app目录下生成一个User模型,并且在数据库生成一个users表。在User模型中,我们需要指定用户使用的认证方式。Laravel框架提供了多种用户认证方式,我们可以在模型中的guard属性中进行设置:

protected $guard = 'web';

创建好用户模型之后,我们需要再创建一个用于展示用户注册页面的控制器,我们使用以下命令来创建该控制器:

php artisan make:controller AuthRegisterController --resource

运行完这个命令之后,Laravel框架将会在appHttpControllersAuth目录下创建一个名为RegisterController.php的文件。在该控制器中,我们需要实现以下方法:

use AppUser;
use IlluminateFoundationAuthRegistersUsers;
public function register(Request $request)
{
    $this->validator($request->all())->validate();

    event(new Registered($user = $this->create($request->all())));

    $this->guard()->login($user);

    return redirect($this->redirectTo);
}

// 验证用户输入的数据
protected function validator(array $data)
{
    return Validator::make($data, [
        'name' => ['required', 'string', 'max:255'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password' => ['required', 'string', 'min:8', 'confirmed'],
    ]);
}

// 保存注册用户信息到数据库
protected function create(array $data)
{
    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
    ]);
}

接下来,我们需要在routes/web.php中添加该控制器的路由:

Route::get('register', 'AuthRegisterController@showRegistrationForm')->name('register');
Route::post('register', 'AuthRegisterController@register');

在前台页面上,我们使用以下表单来收集用户数据:

<form method="POST" action="{{ route('register') }}">
    @csrf
    <div>
        <label for="name">用户名</label>
        <input id="name" type="text" name="name" value="{{ old('name') }}" required autofocus>
    </div>

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

    <div>
        <label for="password">密码</label>
        <input id="password" type="password" name="password" required>
    </div>

    <div>
        <label for="password-confirm">确认密码</label>
        <input id="password-confirm" type="password" name="password_confirmation" required>
    </div>

    <div>
        <button type="submit">注册</button>
    </div>
</form>

然后我们就成功地创建了用户注册流程。

  1. 用户登录流程

Laravel提供了非常快捷的用户登录方法,我们可以使用该方法来进行用户登录。在routes/web.php中添加以下路由:

Route::get('login', 'AuthLoginController@showLoginForm')->name('login');
Route::post('login', 'AuthLoginController@login');
Route::post('logout', 'AuthLoginController@logout')->name('logout');

然后创建一个与User模型对应的LoginController控制器。在控制器中,我们需要实现以下方法:

use IlluminateFoundationAuthAuthenticatesUsers;
public function login(Request $request)
{
    $this->validateLogin($request);

    if ($this->attemptLogin($request)) {
        return $this->sendLoginResponse($request);
    }

    return $this->sendFailedLoginResponse($request);
}

// 认证用户名和密码
protected function attemptLogin(Request $request)
{
    return $this->guard()->attempt(
        $this->credentials($request), $request->filled('remember')
    );
}

// 获取用户名和密码
protected function credentials(Request $request)
{
    return $request->only($this->username(), 'password');
}

public function username()
{
    return 'email';
}

// 用户退出登录方法
public function logout(Request $request)
{
    $this->guard()->logout();

    $request->session()->invalidate();

    return redirect('/');
}

接着,我们需要创建一个用户登录视图。在视图中,我们使用以下表单来接收用户数据:

<form method="POST" action="{{ route('login') }}">
    @csrf
    <div>
        <label for="email">邮箱</label>
        <input id="email" type="email" name="email" value="{{ old('email') }}" required autofocus>
    </div>

    <div>
        <label for="password">密码</label>
        <input id="password" type="password" name="password" required>
    </div>

    <div>
        <input type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}>
        <label for="remember">记住我</label>
    </div>

    <div>
        <button type="submit">登录</button>
    </div>
</form>

在创建好以上视图和控制器之后,我们就实现了Laravel框架的用户登录和注册流程。需要注意的事项是用户登录成功之后,需要将用户信息存入session中,以便于后续功能的调用。在控制器的第二个方法中,我们可以利用Laravel框架提供的attemptLoginrrreee

사용자 모델을 생성한 후 사용자 등록을 표시하기 위해 다른 모델을 생성해야 합니다 page Controller에서 다음 명령을 사용하여 컨트롤러를 생성합니다.

rrreee

이 명령을 실행한 후 Laravel 프레임워크는 appHttpControllersAuth 디렉터리에 RegisterController.php라는 파일을 생성합니다. 파일. 이 컨트롤러에서는 다음 메소드를 구현해야 합니다. 🎜rrreee🎜다음으로 routes/web.php에 이 컨트롤러의 경로를 추가해야 합니다. 🎜rrreee🎜첫 페이지에서 다음을 사용합니다. 사용자 데이터를 수집하려면 다음 양식을 사용하세요. 🎜rrreee🎜 그러면 사용자 등록 흐름이 성공적으로 생성되었습니다. 🎜
    🎜사용자 로그인 프로세스🎜🎜🎜Laravel은 사용자 로그인에 사용할 수 있는 매우 빠른 사용자 로그인 방법을 제공합니다. routes/web.php에 다음 경로를 추가하세요: 🎜rrreee🎜 그런 다음 User 모델에 해당하는 LoginController 컨트롤러를 생성하세요. 컨트롤러에서 다음 메소드를 구현해야 합니다. 🎜rrreee🎜 다음으로 사용자 로그인 뷰를 생성해야 합니다. 뷰에서는 다음 형식을 사용하여 사용자 데이터를 수신합니다. 🎜rrreee🎜위의 뷰와 컨트롤러를 만든 후 Laravel 프레임워크의 사용자 로그인 및 등록 프로세스를 구현했습니다. 주목해야 할 점은 사용자가 성공적으로 로그인한 후 후속 함수 호출을 용이하게 하기 위해 사용자 정보를 세션에 저장해야 한다는 것입니다. 컨트롤러의 두 번째 메소드에서는 Laravel 프레임워크에서 제공하는 attemptLogin 메소드를 사용하여 사용자의 로그인 정보를 확인할 수 있습니다. 인증이 통과되면 사용자 정보가 세션에 저장되고 사용자는 하위 URL로 리디렉션됩니다. 🎜🎜요약하자면, Laravel 프레임워크의 사용자 로그인 및 등록 프로세스는 매우 간단하고 이해하기 쉽습니다. 위 단계를 통해 사용자 로그인 및 등록 기능을 구현하려면 몇 줄의 간단한 코드만 있으면 됩니다. 물론 사용자에게 고급 인증 및 권한 관리가 필요한 경우 Laravel 프레임워크의 확장성을 사용하여 위의 모델 및 컨트롤러를 기반으로 일부 사용자 정의 방법을 추가할 수도 있습니다. 🎜

위 내용은 laravel 프레임워크 로그인 등록 프로세스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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