前言介紹
- 這款 WordPress 外掛「API Bearer Auth」是 2017-11-30 上架。
- 目前有 300 個安裝啟用數。
- 上一次更新是 2023-11-25,距離現在已有 525 天。超過一年沒更新,安裝要確認版本是否可用。以及後續維護問題!
- 外掛最低要求 WordPress 4.6 以上版本才可以安裝。
- 外掛要求網站主機運作至少需要 PHP 版本 5.4.0 以上。
- 有 6 人給過評分。
- 還沒有人在論壇上發問,可能目前使用數不多,還沒有什麼大問題。
外掛協作開發者
外掛標籤
api | jwt | rest-api | jwt-tokens | authentication |
內容簡介
API Bearer Auth 外掛可以藉由使用 JWT 存取和更新權杖來啟用 REST API 的驗證功能。當使用者登入後,存取和更新權杖將會回傳,並可以用於下一個請求。發行的權杖可以在使用者管理畫面中撤銷。請參考下方的端點。
請注意,在啟用此外掛後,所有 REST API 端點都需要經過驗證,除非該端點在api_bearer_auth_unauthenticated_urls篩選器中被列入白名單(詳情請參閱常見問題解答)。
JWT
存取權杖可以被格式化為 JWT 權杖。為了使其正常運作,您首先需要創建一個密鑰,並將其添加到 wp-config.php 檔案中。如果您沒有這樣做,存取權杖仍會運作,但只是隨機的字串。例如,您可以進行以下操作,以創建一個隨機密鑰:
base64_encode(openssl_random_pseudo_bytes(64));
然後將結果添加到 wp-config 中:
define('API_BEARER_JWT_SECRET', 'mysecretkey');
如果您有問題,可以在以下網址驗證您的 JWT 權杖:https://jwt.io/
撤銷權杖
此外掛會為使用者表中添加一欄,您可以在其中查看權杖何時過期。您也可以從批量操作下拉式選單中選擇「撤銷 API 權杖」來撤銷權杖。
API端點
請注意,所有端點都希望在POST主體中得到JSON格式的資料。
登入
端點:
POST /api-bearer-auth/v1/login
要求主體:
注意:client_name為可选項。但是,如果您使用它,在使用刷新呼叫時也要確保使用它!
{"username": "my_username", "password": "my_password", "client_name": "my_app"}
回應:
{
"wp_user": {
"data": {
"ID": 1,
"user_login": "your_user_login",
// 其他 WordPress 常規使用者欄位
}
},
"access_token": "your_access_token",
"expires_in": 86400, // 秒數
"refresh_token": "your_refresh_token"
}
請確保保存存取和更新權杖!
刷新存取權杖
端點:
POST /api-bearer-auth/v1/tokens/refresh
要求主體:
注意:client_name為可选項。但是,如果您使用了它來進行登入呼叫,請確保在此處也使用它!
{"token": "your_refresh_token", "client_name": "my_app"}
回應成功:
{
"access_token": "your_new_access_token",
"expires_in": 86400
}
當傳送錯誤的更新權杖時,回應為 401:
{
"code": "api_api_bearer_auth_error_invalid_token",
"message": "Invalid token.",
"data": {
"status": 401
}
}
發送未經驗證的存取權杖或使用者未登錄,會回應401:
{
"code":
原文外掛簡介
The API Bearer Auth plugin enables authentication for the REST API by using JWT access an refresh tokens. After the user logs in, the access and refresh tokens are returned and can be used for the next requests. Issued tokens can be revoked from within the users admin screen. See below for the endpoints.
Note that after activating this plugin, all REST API endpoints will need to be authenticated, unless the endpoint is whitelisted in the api_bearer_auth_unauthenticated_urls filter (see FAQ for how to use this filter).
JWT
Access tokens can be formatted as JWT tokens. For this to work, you first have to create a secret and add it to the wp-config.php file. If you don’t do this, access tokens will work also, but are just random strings. To create a random secret key, you can do for example:
base64_encode(openssl_random_pseudo_bytes(64));
And then add the result to wp-config:
define('API_BEARER_JWT_SECRET', 'mysecretkey');
If you have problems, you can verify your JWT tokens at: https://jwt.io/
Revoke tokens
This plugin adds a column to the users table in de admin where you can see when a token expires. You can also revoke tokens by selection the “Revoke API tokens” from the bulk actions select box.
API endpoints
Note that all endpoints expect JSON in the POST body.
Login
Endpoint:
POST /api-bearer-auth/v1/login
Request body:
Note: client_name is optional. But if you use it, make sure to use it as well for the refresh call!
{"username": "my_username", "password": "my_password", "client_name": "my_app"}
Response:
{
"wp_user": {
"data": {
"ID": 1,
"user_login": "your_user_login",
// other default WordPress user fields
}
},
"access_token": "your_access_token",
"expires_in": 86400, // number of seconds
"refresh_token": "your_refresh_token"
}
Make sure to save the access and refresh token!
Refresh access token
Endpoint:
POST /api-bearer-auth/v1/tokens/refresh
Request body:
Note: client_name is optional. But if you did use it for the login call, make sure to use it here as well!
{"token": "your_refresh_token", "client_name": "my_app"}
Response success:
{
"access_token": "your_new_access_token",
"expires_in": 86400
}
Response when sending a wrong refresh token is a 401:
{
"code": "api_api_bearer_auth_error_invalid_token",
"message": "Invalid token.",
"data": {
"status": 401
}
}
Do a request
After you have the access token, you can make requests to authenticated endpoints with an Authorization header like this:
Authorization: Bearer
Note that Apache sometimes strips out the Authorization header. If this is the case, make sure to add this to the .htaccess file:
RewriteCond %{HTTP:Authorization} ^(.*)
# Don't know why, but some need the line below instead of the RewriteRule line
# SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0
RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
If you are not logged in or you send an invalid access token, you get a 401 response:
{
"code": "api_bearer_auth_not_logged_in",
"message": "You are not logged in.",
"data": {
"status": 401
}
}
Important update
Update immediately if you’re using a version below 20200807. Before this version all access tokens were updated when calling the refresh callback.
If you are affected by this the fastest solution is to execute this query:
update wp_user_tokens set access_token_valid = NOW();
This will invalidate all access tokens. This means that all users need to refresh their access token and will get a new access token and a unique one this time.
A big thank to @harchvertelol for reporting this and suggesting the fix as well!
各版本下載點
- 方法一:點下方版本號的連結下載 ZIP 檔案後,登入網站後台左側選單「外掛」的「安裝外掛」,然後選擇上方的「上傳外掛」,把下載回去的 ZIP 外掛打包檔案上傳上去安裝與啟用。
- 方法二:透過「安裝外掛」的畫面右方搜尋功能,搜尋外掛名稱「API Bearer Auth」來進行安裝。
(建議使用方法二,確保安裝的版本符合當前運作的 WordPress 環境。
延伸相關外掛(你可能也想知道)
Limit Login Attempts 》此外掛可限制正常登入及使用驗證 cookies 登入的次數。, WordPress 預設允許使用者無限次數嘗試登入,無論是透過登入頁面或是傳送特殊 cookies 皆可。這讓密...。
InfiniteWP Client 》InfiniteWP 可讓使用者從自己的伺服器管理無限數量的 WordPress 網站。, 主要功能:, , 自行託管系統:位於您自己的伺服器上,完全受您控制, 一鍵更新所有網站...。
WPS Limit Login 》繁體中文, 限制通過登錄頁面和使用權限Cookie可能的登錄嘗試次數。, WordPress 默認情況下允許通過登錄頁面或發送特殊 Cookie 的方式進行無限制的登錄嘗試。...。
Two-Factor 》在「使用者」→「您的個人檔案」下的「雙因素認證選項」部分,啟用和設定一個或多個雙因素認證提供者:, , 電子郵件代碼, 時間同步一次性密碼(TOTP), FIDO通...。
WP-Members Membership Plugin 》8211; allows you to restrict file downloads to registered users only, with customizable download links., MailChimp Integration – integrates W...。
Google Authenticator 》WordPress 的 Google Authenticator 外掛使用 Google Authenticator App 為 Android/iPhone/Blackberry 手機提供雙因素驗證。, 如果您有安全意識,您可能已經...。
Login by Auth0 》這個外掛會以 Auth0 為基礎,取代標準 WordPress 登入表單,具有以下功能:, , 通用身分驗證, , 超過 30 個社交登入提供者, 企業連接 (ADFS、Active Director...。
WP Limit Login Attempts 》Limit Login Attempts 是一款可保護登錄安全,防止暴力破解攻擊的 WordPress 插件。暴力破解攻擊通常採用最簡單的方式來獲得網站控制權:一遍遍地嘗試輸入帳...。
Login for Google Apps 》Google應用登錄允許現有的WordPress使用者使用Google進行帳戶驗證來登錄您的網站以實現安全認證。這意味著,如果他們已經登入Gmail,他們可以通過WordPress登...。
Application Passwords 》⚠️ 重要提示:此外掛已合併至 WordPress 5.6 核心,不需要單獨安裝。 查看整合指南→, 使用應用程式密碼進行身份驗證,而不必直接提供用戶的密碼。相反,為每...。
WP SAML Auth 》 , 使用打包的 OneLogin SAML library 或者可选的安装 SimpleSAMLphp,WP SAML Auth 插件提供 WordPress 的 SAML 身份验证。OneLogin 提供了一个 SAML 身份验...。
Email Login 》使用電子郵件地址作為登入 WordPress 的識別名稱,代替使用者名稱。, 因為 WordPress 規定電子郵件地址必須在系統中唯一,所以使用它作為登入識別名稱是個好...。
Log in with Google 》這是一個極簡化的外掛,讓您的使用者可以使用他們的 Google 帳戶登入 WordPress 應用程式,不再需要記住笨重的密碼!, 初始設置, , , 如果尚未存在,請從 Goo...。
Active Directory Integration / LDAP Integration 》展示 | 文檔 | 特性 | 插件 | 聯繫我們, Active Directory 整合 / LDAP 整合 Intranet 登入的外掛程式 可以讓您使用其 Active Directory/LDAP 憑證身分驗證您...。
Duo Two-Factor Authentication 》Duo Security 提供雙因素認證服務,以保護帳戶免受劫持和資料竊取。使用 Duo 外掛,您可以在幾分鐘內輕鬆地將 Duo 雙因素認證添加到您的 WordPress 網站中!,...。