【发布时间】:2017-06-03 20:06:45
【问题描述】:
当用户使用客户端应用程序登录 WordPress 网站时,我有一个两步流程
第一步:客户端应用程序调用WordPress站点的API url,它创建一个nonce并将nonce令牌返回给应用程序。
$nonce = wp_create_nonce("my-action");
第二步:客户端应用程序使用带有 GET 请求的 Web 视图加载 WordPress 站点,其中包括 GET 参数中的 nonce。然后验证随机数。
wp_verify_nonce( $_GET['token'], 'my-action' );
我使用 Postman 和桌面浏览器对此进行了模拟。但是nonce无法验证。它总是失败。
这是我创建随机数的地方
if(username_exists($username)){
$user = get_user_by('login', $username );
$result['status'] = "already_registered";
$token = sha1(date('H:i'));
$result['token'] = $token;
$result['nonce'] = wp_create_nonce("my-action");
return $result;
}
这是我检查随机数的地方...
function userAuth(){
echo $_GET['token'];
$nonce = wp_verify_nonce( $_GET['token'], 'my-action' );
//Do more things based on above verification
}
知道有什么问题吗?
【问题讨论】:
-
将代码发布到您实际呈现随机数的位置( 字段和
-
你在哪里打印你的随机数?您的输入表单在哪里?
-
无输入表单。我使用 GET 变量像这样传递它...
http://apidemo/?token=03b7c4cab0&username=333 -
好吧,可以把它放在你的问题中,以及你是如何构建查询字符串的。但是,如果你通过
nonce,你为什么要验证token??? -
是的,我确实提到我将 nonce 放入 GET 参数中。实际上,token 是“nonce”。为了方便起见,我只是将其重命名。