} try { $hybridAuth = new Hybrid_Auth($config); $adapter = $hybridAuth->authenticate($provider); $profile = $adapter->getUserProfile(); $q = UserQuery::create()->filterByHybridAuthProviderId($provider)->filterByHybridAuthId($profile->identifier); $user = $q->findOne(); if (!$user) { $base = "ABCDEFGHKLMNOPQRSTWXYZabcdefghjkmnpqrstwxyz123456789"; $pass = ""; for ($i = 0; $i < 10; $i++) { $pass .= $base[mt_rand(0, strlen($base) - 1)]; } $user = new User(); $user->setHybridAuthProviderId($provider); $user->setHybridAuthId($profile->identifier); $user->setEmail($profile->email); $user->setUsername("{$provider}::{$profile->identifier}"); $encoder = $app['security.encoder_factory']->getEncoder($user); $user->setPassword($encoder->encodePassword($pass, $user->getSalt())); $user->save(); } // force login $token = new UsernamePasswordToken($user, null, 'main', $user->getRoles()); $app['security']->setToken($token); // $response = $app->redirect($app['session']->get('_security.main.target_path') ?: $app['url_generator']->generate('homepage')); $response = $app->redirect($app['url_generator']->generate('watchlist')); $app['session']->set('_security.main.target_path', ''); $response->headers->setCookie(new Cookie('logged_in', true)); return $response; } catch (\Exception $e) {