>  기사  >  PHP 프레임워크  >  laravel 로그인 기본 점프

laravel 로그인 기본 점프

WBOY
WBOY원래의
2023-05-20 19:03:37486검색

Laravel은 개발자가 웹 애플리케이션을 더 빠르고 효율적으로 개발할 수 있도록 많은 편리한 기능과 강력한 기능을 제공하는 매우 인기 있는 PHP 프레임워크입니다. 강력한 기능 중 하나는 사용자 로그인 시스템입니다. Laravel에서는 사용자를 애플리케이션에 로그인시키기 위한 사용자 인증 시스템을 빠르게 생성할 수 있습니다. 회원가입, 로그인, 비밀번호 재설정 등 일반적인 사용자 인증 기능을 심플코드를 통해 쉽게 구현할 수 있습니다.

사용자가 애플리케이션에 성공적으로 로그인하면 Laravel은 기본적으로 사용자를 애플리케이션의 루트 디렉터리로 리디렉션합니다. 그러나 때때로 사용자가 로그인한 후 사용자 프로필이나 제어판과 같은 특정 페이지로 리디렉션되기를 원할 수도 있습니다. 이번 글에서는 Laravel에서 기본 로그인 리디렉션 URL을 설정하는 방법을 설명하겠습니다.

먼저 Laravel의 사용자 인증 시스템이 어떻게 작동하는지 살펴보겠습니다. Laravel은 사용자 인증을 관리하기 위해 기본적으로 Guard를 사용하며, "웹" Guard는 Laravel이 기본적으로 사용하는 Guard입니다. Guard를 사용하기 전에 config/auth.php 파일에서 이를 구성해야 합니다. 이 파일에서는 다양한 가드와 해당 구성을 정의할 수 있습니다. 예를 들어, 아래는 "web"과 "admin"이라는 두 개의 가드를 정의하는 config/auth.php 파일의 예입니다.

return [

    'guards' => [

        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'admin' => [
            'driver' => 'session',
            'provider' => 'admins',
        ],

    ],

    'providers' => [

        'users' => [
            'driver' => 'eloquent',
            'model' => AppModelsUser::class,
        ],

        'admins' => [
            'driver' => 'eloquent',
            'model' => AppModelsAdmin::class,
        ],

    ],

];

위의 예에서 "web" 가드와 "admin" 가드는 모두 인증을 위해 세션 드라이버를 사용하는 것을 볼 수 있습니다. 여기서 "web" 가드는 사용자 인증을 위해 "users" 공급자를 사용하고 "admin" 가드는 " admins"를 사용합니다. ” 관리자 인증 공급자입니다. 또한 config/auth.php 파일에서 각 가드의 기본 리디렉션 URL을 구성할 수도 있습니다. 예를 들어 기본 리디렉션 URL을 사용하는 예는 다음과 같습니다.

'guards' => [

        'web' => [
            'driver' => 'session',
            'provider' => 'users',
            'redirect' => '/',
        ],

    ],

위 예에서는 "web" 가드의 기본 리디렉션 URL을 애플리케이션의 루트 디렉터리인 "/"로 설정했습니다. 사용자가 성공적으로 로그인하면 이 URL로 리디렉션됩니다. 마찬가지로 필요한 경우 리디렉션 URL(예: 사용자 프로필 또는 제어판)을 변경할 수 있습니다. 가드 구성의 '리디렉션' 옵션을 리디렉션해야 하는 URL로 변경하기만 하면 됩니다.

그러나 위 예의 "웹" 및 "관리자" 가드와 같이 애플리케이션에 여러 가드가 있는 경우 기본 리디렉션 URL을 어떻게 설정합니까? 이 경우 Laravel은 각 가드에 대한 기본 리디렉션 URL을 쉽게 설정할 수 있는 간단한 솔루션을 제공합니다.

기본적으로 Laravel은 사용자 로그인 관리를 위해 app/Http/Controllers/Auth/LoginController.php 파일에 LoginController를 제공합니다. 이 컨트롤러의 각 가드에 대한 기본 리디렉션 URL을 설정할 수 있습니다. 예를 들어, 다음은 "웹" 가드 및 "관리자" 가드에 대한 기본 리디렉션 URL을 변경하는 예입니다.

<?php

namespace AppHttpControllersAuth;

use AppHttpControllersController;
use IlluminateFoundationAuthAuthenticatesUsers;

class LoginController extends Controller
{
    use AuthenticatesUsers;

    protected $redirectTo = '/';

    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }

    protected function redirectTo()
    {
        if (auth()->user()->isAdmin()) {
            return '/admin/dashboard';
        } else {
            return '/home';
        }
    }
}

위 예에서는 LoginController의 리디렉션To() 메서드를 재정의하고 현재 사용자의 가드를 기반으로 반환합니다. 다양한 리디렉션 URL. 현재 사용자의 가드가 "admin"인 경우 관리자 제어판으로 리디렉션되고, 그렇지 않은 경우 사용자의 개인 홈페이지로 리디렉션됩니다. 필요에 따라 리디렉션 URL을 변경할 수 있습니다.

guards에 'redirect' 옵션이 설정된 경우에만 사용자를 리디렉션하는 데 directTo() 메서드를 사용할 수 있다는 점에 유의하세요. config/auth.php 파일에서 'redirect' 옵션을 설정하지 않은 경우 기본 리디렉션 URL을 사용해야 합니다. 또한,redirectTo() 메서드 재정의는 'redirect' 옵션을 직접 변경하는 것과 본질적으로 다릅니다. RedirectTo() 메서드에서는 리디렉션 URL을 세부적으로 제어하기 위한 논리 코드를 작성할 수 있습니다.

전반적으로 Laravel 기본 로그인 리디렉션 URL을 설정하는 것은 매우 간단합니다. config/auth.php 파일이나 LoginController의 directTo() 메소드를 통해 이를 설정할 수 있습니다. 애플리케이션에 가드가 여러 개 있는 경우 LoginController에서 각 가드의 기본 리디렉션 URL을 세밀하게 제어할 수 있습니다. 이러한 방법을 사용하면 사용자 경험과 애플리케이션 흐름을 더 효과적으로 제어할 수 있어 더 부드럽고 사용자 친화적이게 됩니다.

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

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