WordPress API认证方法:OAuth、JWT和Basic Auth

作者:API传播员 · 2025-12-09 · 阅读时间:3分钟

作为一名软件开发人员,理解如何在使用 WordPress JSON Web 令牌(JWT)和基本身份验证(Basic Auth)。这些方法能够确保客户端与 WordPress 网站之间的通信安全,并适用于不同的场景和需求。


OAuth 身份验证

OAuth 是一种访问授权标准,通常用于允许用户授权网站或应用程序访问其他网站的信息,而无需提供密码。WordPress 支持 OAuth 1.0a,它通过要求客户端使用数字签名进行身份验证,提供了较高的安全性。

以下是一个在 PHP 中使用 OAuth 库的示例代码:

$request_url = 'https://yourwordpresssite.com/oauth1/request';
$consumer_key = '您的消费者密钥';
$consumer_secret = '您的消费者秘密';
$oauth = new OAuth($consumer_key, $consumer_secret);
$oauth->enableDebug();

try {
    $request_token_info = $oauth->getRequestToken($request_url);
    // 处理回调和验证器步骤...
} catch (OAuthException $e) {
    error_log($e->getMessage());
}

在 WordPress 中使用 OAuth 时,开发人员通常需要安装支持 OAuth 服务端功能的插件。


JWT 身份验证

JSON Web 令牌(JWT)是一种轻量级且灵活的身份验证方法。用户成功登录后,系统会生成一个 JWT 令牌,该令牌需要在每次请求时随附,以完成身份验证。

以下是生成 JWT 令牌的示例代码:

$username = '您的用户名';
$password = '您的密码';
$token_url = 'https://yourwordpresssite.com/wp-json/jwt-auth/v1/token';

$response = wp_remote_post($token_url, array(
    'method' => 'POST',
    'body' => array(
        'username' => $username,
        'password' => $password,
    ),
));if (is_wp_error($response)) {
    error_log($response->get_error_message());
} else {
    $body = json_decode(wp_remote_retrieve_body($response), true);
    $jwt_token = $body['token'];
    // 在后续请求中使用此令牌。
}

要集成 JWT 身份验证,开发人员需要安装并配置支持 JWT 的插件。


基本身份验证

基本身份验证(Basic Auth)是一种简单的身份验证方法。客户端在发送 HTTP 请求时,会在 Authorization 标头中包含一个由 "Basic" 和 Base64 编码的 username:password 组成的字符串。

以下是使用 cURL 示例:

curl --user 用户名:密码 https://yourwordpresssite.com/wp-json/wp/v2/posts

尽管基本身份验证易于实现,但由于其对未加密连接的固有不安全性,它只能在 HTTPS 上使用。开发人员可以通过插件或向 WordPress 主题的 functions.php 文件添加代码来启用 Basic Auth。


总结

每种身份验证方法都有其独特的优势和适用场景:

  • OAuth:适合需要高安全性和复杂授权流程的应用。
  • JWT:轻量级且灵活,适合需要频繁身份验证的场景。
  • 基本身份验证:实现简单,但仅适用于开发或 HTTPS 环境。

开发人员应根据具体需求选择合适的身份验证方法,并始终遵循安全最佳实践,以保护用户数据和系统安全。

原文链接: https://reintech.io/blog/wordpress-api-authentication-methods