php - 如何更改 WP-API 的 JWT 身份验证上的 JSON 响应?

标签 php wordpress jwt

我使用了“JWT Authentication for WP-API”插件来登录并生成 token 。

在 JSON 响应中,我只有 wp_users 表中的一些数据。

如何更改它以在响应时从 wp_usermeta 表中获取一些其他值,因为我想知道用户状态级别。

最佳答案

您需要使用过滤器jwt_auth_token_before_signjwt_auth_token_before_dispatch

第一个过滤器接收 token 数据和用户对象。

在另一个插件或您的主题中,您需要调用 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,
                ]
            ]
];

关于php - 如何更改 WP-API 的 JWT 身份验证上的 JSON 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55971717/

相关文章:

spring-security - Spring OAuth 与 JWT 自定义 UserDetails - 在 JwtAccessTokenConverter 中设置主体

php - 避免从不同位置多次登录一个帐户

php - 用于检查一个日期是否接近当前日期的 MySQL 查询

php - 为什么它不能只突出显示新数据?

jquery - Wordpress 如何使用 jquery 和 $ 符号

html - 如何使下拉子菜单背景在整个菜单宽度上延伸

python - 如何在不强制用户重新输入密码的情况下进行 Django JSON Web token 身份验证?

php - 检查 php 准备语句中是否为空

php - MYSQL 检索特色图片和帖子标题

c# - System.IdentityModel.Tokens 和 Microsoft.IdentityModel.Tokens 之间的冲突