示例#1
0
 public function accessToken()
 {
     if (Sentry::check()) {
         return Redirect::to('/home')->with(array('user' => Sentry::getUser()));
     }
     // Session::put('code', Input::get('code'));
     $code = Input::get('code');
     $data = $this->getAccessTokenByCode($code);
     $data = StaticController::stringToArray($data);
     $access_token = $data['access_token'];
     $refresh_token = $data['refresh_token'];
     $data_of_openid = $this->getOpenidByAccessToken($access_token);
     $openid = $this->getOpenidFromString($data_of_openid);
     $user = User::where('qq_id', '=', $openid)->first();
     if (!isset($user)) {
         // try{
         $user = $this->getUserInfoByOpenid($access_token, $openid);
         $client_user = Sentry::createUser(array('username' => $user['nickname'], 'avatar' => $user['figureurl'], 'gender' => $user['gender'], 'email' => $openid, 'password' => $openid, 'qq_id' => $openid, 'activated' => '1'));
         // }
         // catch(Cartalyst\Sentry\Users\PasswordRequiredException $e)
         // {
         //     return View::make('errors.missing');
         // }
         // catch(Cartalyst\Sentry\Users\UserExistsException $e)
         // {
         //     return View::make('errors.missing');
         // }
         // try{
         $user = Sentry::findUserById($client_user->id);
         Sentry::login($user, false);
         // }
         // catch(Cartalyst\Sentry\Users\LoginRequiredException $e)
         // {
         //     return View::make('errors.missing');
         // }
         // catch(Cartalyst\Sentry\Users\UserNotFoundException $e)
         // {
         //     return View::make('errors.missing');
         // }
         // catch(Cartalyst\Sentry\Users\UserNotActivatedException $e)
         // {
         //     return View::make('errors.missing')
         // }
         return Redirect::to('/home')->with(array('user' => $user));
     }
     $user = Sentry::findUserById($user->id);
     Sentry::login($user, false);
     return Redirect::to('/home')->with(array('user' => $user));
 }