如何在用户登录前调用API

时间:2019-01-06 作者:Lester Vargas

我有一个自定义登录,其中有两个API:第一个用于发布用户电话,第二个用于发布用户pin以验证电话。

主要问题是,这两个具有以下url(domain.com/api/user/verify\\u phone)的api无法工作,因为它们被重定向到/登录页面。

当我在用户经过身份验证后调用相同的url时,它会工作。。。当然,我在登录之前需要它。我该怎么做?请帮忙!

I may found that the bug in the functions.php on the theme, 在这里,我创建了一个函数来处理登录的所有重定向,代码如下:

function login_redirect(){
global $pagenow;
     if( \'wp-admin\' != preg_split(\'/\\//\',$_SERVER[\'REQUEST_URI\'])[1] ){
        if(preg_split(\'/\\//\',$_SERVER[\'REQUEST_URI\'])[1] == \'/api/\'){
            exit();
        }else if( $_SERVER[\'REQUEST_URI\'] != \'/login/\') {
            if (!checkUserStatus()){
                wp_redirect(\'https://learn.fractalup.com/login/\');
                exit();
            }
        }
 }
add_action(\'parse_request\',\'login_redirect\');
因此,我尝试重定向所有调用以确保用户登录,并尝试使API调用通过,但仍然会出现302重定向错误。请帮忙!

1 个回复
最合适的回答,由SO网友:tmdesigned 整理而成

我想这只是你“如果”状态的一个小错误

$result = preg_split(\'/\\//\',\'domain.com/api/user/verify_phone\');
var_dump($result);
结果如下:

array(4) {
  [0]=>
  string(10) "domain.com"
  [1]=>
  string(3) "api"
  [2]=>
  string(4) "user"
  [3]=>
  string(12) "verify_phone"
}
因此,[1]处的结果是“api”,但您正在代码示例的第四行检查“/api/”。