> 백엔드 개발 > PHP 튜토리얼 > Laravel5.4 재로그인을 통해 사전 로그인 페이지 코드 공유로 점프 구현

Laravel5.4 재로그인을 통해 사전 로그인 페이지 코드 공유로 점프 구현

小云云
풀어 주다: 2023-03-20 06:10:02
원래의
1946명이 탐색했습니다.

사용자가 로그인한 후 만료 시간이 발생하고, 시간 초과 후 다시 로그인해야 하는 경우가 있습니다. 이 글에서는 주로 Laravel 5.4에서 사전 로그인 페이지로 이동하는 원리와 방법을 소개합니다. 그것이 모두에게 도움이 되기를 바랍니다.

1. 적용 시나리오:

사용자가 로그인한 후 만료 시간이 있으며, 시간 초과 후 사용자는 다시 로그인해야 합니다. 예: 사용자가 /user/2 페이지에 있고 로그인이 만료된 후 사용자가 로그인 페이지로 리디렉션되는 경우 사용자는 home/index 대신 /user/2 페이지에 계속 있어야 합니다.

2. 구현 원칙

사용자가 만료되었다고 판단한 후 사용자의 현재 URL 주소를 세션에 저장하고 다음 로그인 후 이 URL 주소로 이동합니다.

3. laravel의 특정 구현

라우팅 미들웨어(로그인 상태 확인) 여기서는 쿠키의 만료 여부를 기준으로 사용자 로그인 상태를 판단하며, 미들웨어는 로그인과 관련된 판단 및 실행만 판단합니다. 작업 (로그인할 때 쿠키를 사용합니다.) $token 값이 세션 키로 저장됩니다. 코드는 다음과 같습니다.

public function handle($request, Closure $next) {
 //判断cookie是否存在
 if ($token = Cookie::get('token')) {
 //判断session信息,保持状态一致
 if ($request->session()->get($token)) {
  return $next($request);
 }
 }

 //获取当前url,跳转到登陆页
 $returnUrl = urlencode($request->getRequestUri());

 return redirect('/login?reurl=' . $returnUrl); }
로그인 후 복사

로그인 측(페이지와의 상호작용 및 점프 로직 처리) 여기서 수행되는 작업은 다음과 같습니다. 로그인 페이지로 이동합니다. 이는 미들웨어에서 구현될 수 있습니다. 다음 문장만 있습니다. 로 구현하는 것은 reurl을 플래시하여 프런트엔드에서 사용할 수 있도록 제공하는 것입니다.

return redirect('/')->with('reurl', $returnUrl);
로그인 후 복사

페이지 측 (플래시 메모리 정보 판단) 플래시 메모리 정보를 확인하려면 ajax가 있고 제출 로그인이 있어야 합니다. ajax에서 reurl을 가져온 다음 백엔드에 로그인하여 reurl을 확인합니다. .

 @if (session('reurl'))
  <input type="hidden" name="reurl" value="{{ session(&#39;reurl&#39;) }}"/>
 @endif
로그인 후 복사

Login(로그인 로직)에서는 사용자 계정 비밀번호를 확인하고 쿠키와 세션을 저장하는 로직이 생략됩니다. 마지막으로 프런트 엔드는 location.href = 'url'이라는 URL을 획득하고 원래 URL 주소로 이동합니다.

$reurl = $request->get('reurl');

$url = empty($reurl) ? '/home/index' : $reurl;

return response($url);
로그인 후 복사

참고: 이 글에서는 재로그인 구현을 위한 관련 코드만 게시합니다. 실제 비즈니스에 맞게 실제 코드를 수정하시기 바랍니다.

관련 추천:

Thinkphp는 로그인 후 사전 로그인 페이지로 이동하는 데 여전히 문제가 있습니다

위 내용은 Laravel5.4 재로그인을 통해 사전 로그인 페이지 코드 공유로 점프 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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