질문을 삭제하지 말아주세요.!
 
2
1
0

Social login 을 사용하는 사이트가 있습니다.

인증되지 않은 사용자가 인증이 필요한 기능을 사용하려고 하는 경우 로그인 페이지로 이동 후 로그인 까지는 잘 됩니다.

그런데 인증 이후 사용자를 인증 직전의 페이지로 이동시켜주고 싶은데 어떤 방법이 괜찮을까요?

이미 제공되는 기능이 있을까요?

    CommentAdd your comment...

    1 answer

    1.  
      2
      1
      0

      Laravel Socialite(https://github.com/laravel/socialite) 를 사용하면 몇 가지 프로바이더(github, twitter 등)가 포함되어 있고 질문 하신 기능이 이미 구현되어 있으니 이걸 참고하시는 건 어떨까요?

      아래는 github 인증 예제 코드입니다.

       

      /**
       * 깃허브에서 인증이 완료된 사용자 정보를 받아서 처리
       *
       * @return Response
       */
      public function handleGitHubCallback(Request $request)
      {
          try {
              $user = Socialite::driver('github')->user();
          } catch (Exception $e) {
              return redirect('auth/github');
          }
      
          $user = $this->findOrCreateUser($user);
      
          \Auth::login($user );
      
          $request->session()->put('github_id', $user->id); // 세션에 github_id 추가
      
          return redirect()->intended($this->redirectPath());
      }

      인증이 성공하면 호출되는 intended 의 내부를 살펴보니 oauth 요청전에 세션에 'url.intended' 라는 키에 인증 완료후 이동할 URL 을 담아 놓고 oauth 인증이 끝나면 이 값을 꺼내서 redirect 하는 것 같습니다.

      redirect()->intended($this->redirectPath());
        CommentAdd your comment...