Laravel 8 로그인에 Remember Me 기능을 추가하는 방법은 무엇입니까?

원래 게시된 @https://codeanddeploy.com 방문하여 샘플 코드 다운로드: https://codeanddeploy.com/blog/laravel/how-to-add-remember-me-functionality-to-your-laravel-8-login

이 게시물에서는 Laravel 로그인 또는 인증에 나를 기억하는 기능을 추가하거나 구현하는 방법을 보여줍니다. 중요한 구현 중 하나는 때때로 사용자가 자신의 계정에 액세스할 때마다 로그인하는 것을 좋아하지 않고 신뢰할 수 있는 브라우저에 계정을 자동으로 로그인하기 때문에 나를 기억하는 로그인 옵션을 로그인에 추가하는 것입니다.



이전 게시물에서 how to log in and register with email and username에 게시한 이제 로그아웃 기능도 있습니다. 이제 기억하기 옵션을 제공하겠습니다.

쉽게 이해할 수 있도록 쉬운 단계를 알려 드리겠습니다.

1단계: 라라벨 앱 생성



시스템에 작곡가를 이미 설정했다고 가정합니다. 새로운 Laravel 앱을 설치하려면 다음 코딩을 실행하십시오. 그러나 Laravel 앱이 이미 설치되어 있는 경우 이 단계를 건너뛸 수 있습니다.

composer create-project --prefer-dist laravel/laravel login-with-remember-me


그런 다음 다음 명령을 사용하여 login-with-remember-me 폴더를 탐색합니다.

cd login-with-remember-me


2단계: 데이터베이스 자격 증명 설정



다음으로 데이터베이스를 생성하거나 PHPMyAdmin에서 명령을 사용하여 데이터베이스를 생성할 수 있습니다. 그런 다음 생성되면 .env 파일을 탐색하고 데이터베이스 자격 증명을 업데이트합니다.

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_db_name
DB_USERNAME=your_db_username
DB_PASSWORD=your_db_password


사용자를 위한 마이그레이션 및 모델 설정의 전체 프로세스에 대한 자세한 내용은 authentication에 대한 내 이전 게시물을 참조하십시오.

참고: 사용자의 테이블 필드에 remember_token이 있는지 확인해야 하는 재확인이 중요합니다. 그렇지 않은 경우 사용자 테이블에 remember_token을 추가하거나 Laravel이 이미 $table->rememberToken();이라는 마이그레이션의 기본값을 제공했기 때문에 이전 튜토리얼을 따라야 합니다.

먼저 로그인 블레이드 템플릿에 Remember Me 입력을 추가합니다.

<div class="form-group mb-3">
      <label for="remember">Remember me</label>
      <input type="checkbox" name="remember" value="1">
</div>


로그인 양식을 제출하고 나를 기억할 때 아래에서 볼 수 있듯이. 제출된 요청을 인쇄할 때 표시됩니다.



이제 이전 튜토리얼에서 이전 코드를 변경해 보겠습니다. App\Http\Controllers\LoginController.php에서 로그인 방법을 변경하고 remember me를 구현할 것입니다.

이것으로부터:

public function login(LoginRequest $request)
{
   $credentials = $request->getCredentials();

   if(!Auth::validate($credentials)):
      return redirect()->to('login')
                ->withErrors(trans('auth.failed'));
   endif;

   $user = Auth::getProvider()->retrieveByCredentials($credentials);

   Auth::login($user);

   return $this->authenticated($request, $user);
}


이에:

public function login(LoginRequest $request)
{
   $credentials = $request->getCredentials();

   if(!Auth::validate($credentials)):
      return redirect()->to('login')
                ->withErrors(trans('auth.failed'));
   endif;

   $user = Auth::getProvider()->retrieveByCredentials($credentials);

   Auth::login($user, $request->get('remember'));

   return $this->authenticated($request, $user);
}


위에서 볼 수 있듯이 Auth::login() 함수의 두 번째 매개변수에 $request->get('remember')를 추가했습니다.

이제 작동하면 시도해 봅시다.



이제 쿠키에서 브라우저를 검사할 때 인증된 사용자가 기억되었는지 확인하기 위해 Laravel auth의 트리거인 remember_web_*을 이미 볼 수 있습니다.

이 튜토리얼이 도움이 되었으면 합니다. 이 코드를 다운로드하려면 여기https://codeanddeploy.com/blog/laravel/how-to-add-remember-me-functionality-to-your-laravel-8-login를 방문하십시오.

행복한 코딩 :)

좋은 웹페이지 즐겨찾기