我有一个自定义登录,其中有两个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重定向错误。请帮忙!
最合适的回答,由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/”。