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)); }