>  기사  >  PHP 프레임워크  >  라라벨 로그인 점프

라라벨 로그인 점프

WBOY
WBOY원래의
2023-05-29 10:41:37342검색

오픈 소스 PHP 웹 프레임워크인 Laravel은 항상 웹 개발자들의 선호를 받아왔습니다. 강력한 기능과 사용 편의성이 장점입니다. 웹 애플리케이션의 경우 로그인은 매우 기본적인 기능 중 하나입니다. Laravel에서는 사용자 로그인과 점프를 빠르게 구현할 수 있습니다.

이제 Laravel에서 사용자 로그인 및 점프를 구현하는 방법에 대해 이야기하겠습니다.

전제조건

코드 작성을 시작하기 전에 먼저 다음 조건을 확인해야 합니다.

  • Laravel 환경이 있어야 합니다.
  • Laravel의 신원 인증 기능이 켜져 있습니다.

라라벨의 신원인증 기능을 활성화하지 않은 경우, 터미널에서 프로젝트 루트 디렉토리에 들어가서 다음 명령어를 입력하시면 됩니다.

php artisan make:auth

신원인증 기능을 활성화한 라라벨 프로젝트의 경우, 따라하시면 ​​됩니다. 다음 단계가 수행됩니다.

사용자 로그인

Laravel에서는 사용자가 양식을 통해 입력한 사용자 이름과 비밀번호를 얻을 수 있습니다. 일반적으로 다음 코드와 같이 양식에 Post 메소드를 설정하고 이를 LoginController라는 컨트롤러에 제출합니다.

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

    <div>
        <label for="email">邮箱</label>

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

    <div>
        <label for="password">密码</label>

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

    <div>
        <div>
            <div>
                <input type="checkbox" name="remember" id="remember" {{ old('remember') ? 'checked' : '' }}>

                <label for="remember">
                    记住我
                </label>
            </div>
        </div>
    </div>

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

            @if (Route::has('password.request'))
                <a href="{{ route('password.request') }}">
                    忘记密码了?
                </a>
            @endif
        </div>
    </div>
</form>

사용자가 양식 정보를 입력하고 "로그인" 버튼을 클릭하면 LoginController 컨트롤러에 데이터를 제출했습니다.

app/Http/Controllers/Auth/LoginController.php 파일에서 로그인 메소드를 찾아 메소드의 내용을 다음과 같이 수정합니다.

use IlluminateHttpRequest;

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

    if (Auth::attempt($credentials)) {
        // 认证成功后的操作
    }

    return back()->withErrors(
        ['email' => '用户名或密码错误']
    );
}

위 코드에서는 먼저 사용자 양식에서 제출한 데이터를 가져오고, 즉, 이메일과 비밀번호입니다. 다음으로 Auth::attempt() 메소드를 사용하여 사용자 인증을 시도합니다. 사용자 인증이 성공하면 if 문에서 후속 작업이 수행됩니다. 그렇지 않으면 사용자 이름이나 비밀번호가 올바르지 않다는 오류 메시지가 반환되고 로그인 인터페이스가 다시 로드됩니다.

Jump

사용자가 성공적으로 로그인한 후에는 지정된 페이지로 사용자를 이동해야 합니다. Laravel에는 다음과 같은 두 가지 구현 방법이 있습니다.

Controller 메소드

LoginController 컨트롤러에 authenticated() 메소드를 추가하면 지정된 페이지로 리디렉션할 수 있습니다. 이 메소드는 사용자 인증이 성공한 후 자동으로 호출됩니다. 수정된 LoginController 컨트롤러 코드는 다음과 같습니다.

use IlluminateHttpRequest;

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

    if (Auth::attempt($credentials)) {
        return redirect()->intended('/home');
    }

    return back()->withErrors(
        ['email' => '用户名或密码错误']
    );
}

protected function authenticated(Request $request, $user)
{
    return redirect('/home');
}

위 코드에서 사용자를 /home 페이지로 리디렉션하는 authenticated() 메소드를 볼 수 있습니다.

라우팅 방법

로그인 성공 후 경로를 등록하여 리디렉션을 구현할 수도 있습니다. web.php 파일에 다음 경로를 등록합니다.

Route::get('/home', function () {
    return view('home');
})->name('home');

Route::group(['middleware' => 'auth'], function () {
    Route::get('/', function () {
        return redirect()->route('home');
    });
});

위 코드에서는 auth 미들웨어에 기본 루트 경로 /를 등록했습니다. 사용자가 성공적으로 로그인하면 자동으로 /home 페이지로 리디렉션됩니다.

요약

위는 Laravel에서 사용자 로그인 및 점프하는 방법입니다. 라라벨에서 제공하는 신원인증 기능은 사용자 로그인을 빠르게 구현하는데 큰 도움이 됩니다. 동시에 컨트롤러와 라우팅을 통해 사용자 점프를 세부적으로 제어할 수도 있습니다.

위 내용은 라라벨 로그인 점프의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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