2014-05-22 2 views
1

신청서를 작성 중이며 사용자가 Google 계정으로 로그인하도록하십시오. 나는 사용자의 OAuth-4-laravel을 가지고 있고이 있습니다laravel Google 계정으로 로그인하십시오.

UserController.php

내가 성공적으로 사용자 정보를 얻을 내 데이터베이스, 사용자 이름을 저장할 수 있습니다 이후
// get data from input 
     $code = Input::get('code'); 

     // get google service 
     $googleService = Artdarek\OAuth\Facade\OAuth::consumer("Google"); 

     if (!empty($code)) { 

      // This was a callback request from google, get the token 
      $token = $googleService->requestAccessToken($code); 

      // Send a request with it 
      $result = json_decode($googleService->request('https://www.googleapis.com/oauth2/v1/userinfo'), true); 

      $user = DB::select('select id from users where email = ?', array($result['email'])); 

      if (empty($user)) { 
       $data = new User; 
       $data->Username = $result['name']; 
       $data->email = $result['email']; 
       $data->first_name = $result['given_name']; 
       $data->last_name = $result['family_name']; 
       $data->save(); 
      } 
      if (Auth::attempt(array('email' => $result['email']))) { 

      return Redirect::to('/'); 
      } else { 
      echo 'error';  
      } 
     } 
     // if not ask for permission first 
     else { 
      // get googleService authorization 
      $url = $googleService->getAuthorizationUri(); 

      // return to facebook login url 
      return Redirect::to((string) $url); 
     } 
    } 

합니다. 문제는이 후 내가 집 페이지로 사용자를 리디렉션 할 정상적인 로그인과 내가 인증을 CHEC 때문에이 작업을 수행 할 수 있다는 것입니다 :

if (Auth::attempt(array('email' => Input::get('email'), 'password' => Input::get('password')))) { 
      return Response::json(["redirect_to" => "/"]); 

그리고 난 사용자 이름, 사용자 ID 및 이메일 onlu 얻을 구글 로그인으로

. Google 로그인 후 사용자에게 직접 로그인하는 방법은 무엇입니까?

$user = User::find(1); 

Auth::login($user); 

이 시도 방법을 사용하여 자격 증명을 통해 사용자의 로그에 해당 : 당신이 당신의 응용 프로그램에 기존 사용자 인스턴스를 기록해야하는 경우

+0

@ Shift Exchange가 방금 내 코드를 편집했습니다. Pls보세요. 이제는 "오류"메시지 만 표시됩니다. – user3664324

답변

관련 문제