>PHP 프레임워크 >Laravel >로그인 후 laravel 점프

로그인 후 laravel 점프

王林
王林원래의
2023-05-29 14:15:37625검색

사용자 로그인 인증은 웹 애플리케이션 개발 시 필수적인 기능입니다. Laravel 프레임워크는 사용자 인증을 구현하는 다양한 방법을 제공하며 개발자가 응용 프로그램에서 사용자 등록, 로그인, 로그아웃 및 기타 기능을 구현하는 데 도움이 되는 기본 신원 인증 시스템(즉, LaravelIlluminateAuth)도 제공합니다.

로그인 인증에 성공한 후 사용자 프로필 페이지나 특정 기능 페이지 등 특정 페이지로 이동하고 싶은 경우가 많습니다. Laravel 프레임워크에서는 로그인 후 점프를 구현하는 것이 매우 간단합니다.

이 글에서는 사용자가 Laravel 프레임워크에 로그인한 후 점프하는 여러 가지 방법을 소개합니다.

Laravel 프레임워크의 기본 로그인 점프

LaravelIlluminateAuth에서 제공하는 신원 인증 시스템은 기본적으로 사용자 로그인 후 점프로 구성되어 있습니다. config/auth.php 구성 파일에는 다음과 같은 기본 구성이 있습니다.

'redirect' => [
    'login' => '/login',
    'logout' => '/logout',
    'home' => '/home',
    'register' => '/register',
    'verify' => '/email/verify',
    'reset' => '/password/reset',
    'confirm' => '/password/confirm',
  ],

그 중 'home'은 로그인 후 점프 페이지를 나타내며, 기본값은 /home 경로입니다. 기본 점프 페이지를 수정해야 하는 경우 원하는 페이지의 경로만 수정하면 됩니다.

점프 경로 수동 지정

컨트롤러에 로그인한 후 점프 페이지를 수동으로 지정해야 하는 경우 Laravel 프레임워크에서 제공하는 RedirectResponse 인스턴스를 사용하고 리디렉션() 메서드를 통해 구현할 수 있습니다.

예를 들어, 사용자 컨트롤러에서 IlluminateFoundationAuthAuthenticatesUsers 특성의 authenticated() 메소드를 재정의할 수 있습니다.

use IlluminateSupportFacadesAuth;

class UserController extends Controller
{
    use AuthenticatesUsers;

    protected function authenticated(Request $request, $user)
    {
        return redirect()->route('user.show', $user->id);
    }
}

위 코드는 사용자가 성공적으로 로그인한 후 지정된 사용자 프로필 페이지로 이동할 수 있습니다.

이전 페이지로 리디렉션

때로는 사용자가 페이지에 로그인한 후 로그인하기 전에 점프 경로를 설정해야 할 때가 있습니다. Laravel에서 제공하는 session() 함수와 URL::previous() 메서드를 사용할 수 있습니다.

예를 들어, 로그인 컨트롤러에서는 다음과 같이 구현할 수 있습니다:

use IlluminateHttpRequest;
use IlluminateSupportFacadesAuth;
use IlluminateSupportFacadesURL;

class LoginController extends Controller
{
    public function login(Request $request)
    {
        $credentials = $request->only('email', 'password');
        if (Auth::attempt($credentials)) {
            return redirect()->intended(URL::previous());
        }
        return back()->withErrors(['email' => '登录失败']);
    }
}

위 코드에서는 사용자를 로그인 전에 방문한 페이지로 리디렉션하는 리디렉션()->intended() 메서드를 사용합니다. 안에 . 사용자가 이전에 다른 페이지를 방문한 적이 없으면 기본 로그인 점프 경로로 리디렉션됩니다.

미들웨어를 사용하여 지정된 페이지로 이동

Laravel 프레임워크 미들웨어는 편리한 신원 인증 및 권한 부여 기능을 제공합니다. 미들웨어에서 로그인 후 점프 경로를 지정할 수 있습니다.

예를 들어, 인증 미들웨어에서 로그인 후 점프 경로를 구성할 수 있습니다.

namespace AppHttpMiddleware;

use IlluminateAuthMiddlewareAuthenticate as Middleware;

class Authenticate extends Middleware
{
    protected function redirectTo($request)
    {
        if (! $request->expectsJson()) {
            return route('login'); // 设置默认的跳转路径
        }
    }
}

위 코드에서는 RedirectTo() 메서드를 사용하여 실패한 로그인 요청을 처리합니다. 요청 중에 json 형식 데이터가 반환될 것으로 예상되는 경우 401 오류가 직접 반환되고, 그렇지 않으면 사용자가 로그인 페이지로 리디렉션됩니다.

다른 점프 경로를 지정해야 하는 경우 return 문에서 라우팅 별칭만 수정하면 됩니다.

요약

위는 Laravel 프레임워크에서 사용자 로그인 후 점프를 구현하는 여러 가지 방법입니다. 선택되는 구체적인 방법은 개발자의 실제 요구 사항과 개발 시나리오에 따라 다릅니다. 어떤 방법을 사용하든 사용자 인증 기능을 구현하고 로그인 후 편리하고 빠르게 이동할 수 있습니다.

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

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