function wsl_process_login_reauth()
{
    // HOOKABLE:
    do_action("wsl_hook_process_login_before_start");
    // HOOKABLE:
    $redirect_to = apply_filters("wsl_hook_process_login_alter_redirect_to", wsl_process_login_get_redirect_to());
    // HOOKABLE:
    $provider = apply_filters("wsl_hook_process_login_alter_provider", wsl_process_login_get_provider());
    // authenticate user via a social network ( $provider )
    list($user_id, $adapter, $hybridauth_user_profile, $hybridauth_user_id, $hybridauth_user_email, $request_user_login, $request_user_email, ) = wsl_process_login_hybridauth_authenticate($provider, $redirect_to);
    // if user found on database
    if ($user_id) {
        $user_data = get_userdata($user_id);
        $user_login = $user_data->user_login;
        $user_email = $hybridauth_user_profile->email;
    } else {
        list($user_id, $user_login, $user_email, ) = wsl_process_login_create_wp_user($provider, $hybridauth_user_profile, $request_user_login, $request_user_email);
    }
    // finally create a wp session for the user
    return wsl_process_login_authenticate_wp_user($user_id, $provider, $redirect_to, $adapter, $hybridauth_user_profile);
}
function wsl_process_login_reauth()
{
    // HOOKABLE:
    do_action("wsl_hook_process_login_before_start");
    // HOOKABLE:
    $redirect_to = apply_filters("wsl_hook_process_login_alter_redirect_to", wsl_process_login_get_redirect_to());
    // HOOKABLE:
    $provider = apply_filters("wsl_hook_process_login_alter_provider", wsl_process_login_get_provider());
    // authenticate user via a social network ( $provider )
    list($user_id, $adapter, $hybridauth_user_profile, $hybridauth_user_id, $hybridauth_user_email, $request_user_login, $request_user_email, ) = wsl_process_login_hybridauth_authenticate($provider, $redirect_to);
    // if user found on database
    if ($user_id) {
        $user_data = get_userdata($user_id);
        $user_login = $user_data->user_login;
        $user_email = $hybridauth_user_profile->email;
    } else {
        list($user_id, $user_login, $user_email, ) = wsl_process_login_create_wp_user($provider, $hybridauth_user_profile, $request_user_login, $request_user_email);
    }
    // There was a bug when *_create_wp_user returned WP_Error, so just in case
    if (!is_integer($user_id)) {
        return wsl_render_notices_pages(_wsl__("Invalid user_id returned by create_wp_user.", 'wordpress-social-login'));
    }
    // finally create a wp session for the user
    return wsl_process_login_authenticate_wp_user($user_id, $provider, $redirect_to, $adapter, $hybridauth_user_profile);
}