Beispiel #1
0
 /**
  * Login ar register new oneauth_clients
  *
  * @static
  * @access  public
  * @param   array       $user_data
  * @return  Redirect
  */
 public static function login($user_data)
 {
     $client = Client::where('provider', '=', $user_data['provider'])->where('uid', '=', $user_data['info']['uid'])->first();
     if (is_null($client)) {
         $client = new Client(array('uid' => $user_data['info']['uid'], 'provider' => $user_data['provider'], 'user_id' => 0));
     }
     // Link to user using Auth.
     if (!is_null($user = IoC::resolve('oneauth.driver: auth.user'))) {
         $client->user_id = $user->id;
     }
     $client->access_token = $user_data['token']->access_token ?: null;
     $client->secret = $user_data['token']->secret ?: null;
     $client->refresh_token = $user_data['token']->refresh_token ?: null;
     $client->save();
     Event::fire('oneauth.logged', array($client, $user_data));
     $user_data['token'] = serialize($user_data['token']);
     Session::put('oneauth', $user_data);
     return Core::redirect(IoC::resolve('oneauth.driver: auth.check') ? 'logged_in' : 'registration');
 }
 /**
  * Determine whether authenticated user should be continue to login or
  * register new user
  *
  * @static
  * @access  public
  * @param   object   $strategy
  * @return  void
  * @throws  Strategy\Exception
  */
 public static function login_or_register($strategy)
 {
     $token = $strategy->callback();
     $user_info = static::get_user_info($strategy, $token);
     $user_data = array('token' => $token, 'info' => $user_info, 'provider' => $strategy->provider->name);
     return Core::login($user_data);
 }