登录前的预检查条件

时间:2014-05-07 作者:jhrs21

当用户尝试登录时,我需要检查web服务的条件(通过curl)。如何在登录前检查此条件,如果它引发错误,如何显示为WP错误?

谢谢

1 个回复
SO网友:totels

大多数身份验证函数都是可插入的,这意味着您只需在插件中定义它们,即可完全覆盖实际函数,插件将在pluggable.php 归档并提供您声明的服务。

看看wp_authenticatewp_check_password. 它们还有过滤器和操作,可以让您进行所需的任何预验证。在这种情况下,最简单的方法是复制现有函数并根据需要添加代码。

根据您目前所说的,您可能可以通过wp_authenticate_user filter. 如果curl请求失败,只需返回WP\\u错误。

add_filter( \'wp_authenticate_user\', function ($user, $username, $password) {
  if ( !is_wp_error( $user ) ) {
    // run your curl check here
    if ( ! $curling ) {
      return new WP_Error( \'curling_is_dangerous\', __( \'<strong>ERROR:</strong> wat? \' .
          \'That doesn\\\'t even look like a curl!\' ) );
    }
  }

  return $user;
} );

结束