我已经使用“用于WP-API的JWT身份验证”插件登录并生成令牌。
在JSON响应上,我只有SELECT View1.id as id1,
des,
Table1.id as id2,
description
FROM View1 INNER JOIN Table1
WHERE SOUNDEX(des) = SOUNDEX(description)
;
表中的一些数据。
由于我想知道用户状态级别,因此如何更改它以从wp_users
表中获取其他一些值。
答案 0 :(得分:2)
您需要使用过滤器jwt_auth_token_before_sign
或jwt_auth_token_before_dispatch
。
第一个过滤器接收令牌数据和一个用户对象。
在其他插件或主题中,您需要致电add_filter
。
我对自己的Wordpress有点生锈,并且我没有方便的WP实例来进行测试,但这是一般理论:
基本示例:
add_filter('jwt_auth_token_before_sign', 'add_user_info_jwt', 10, 2);
function add_user_info_jwt($token, $user) {
// fetch whatever information you want from the user, probably using the $user
// object as starting point.
$token['roles'] = implode(',', $user->roles);;
return $token;
}
您收到的$token
将具有以下起始结构和信息:
$token = [
'iss' => get_bloginfo( 'url' ),
'iat' => $issuedAt,
'nbf' => $notBefore,
'exp' => $expire,
'data' => [
'user' => [
'id' => $user->data->ID,
]
]
];