WordPress REST API Authentication plugin ger säkerheten från obehörig åtkomst till dina WordPress REST API:er.
Sökresultat :
×Denna metod för WordPress REST API-ändpunkters-autentisering involverar åtkomst till REST-API:erna vid validering baserat på JWT(JSON Web Token), varje gång en begäran om åtkomst till WordPress REST API-slutpunkten görs, kommer autentiseringen att göras mot den JWT-token, och på basis av verifieringen av det JWT-tokenet kommer resurserna för den API-begäran att tillåtas åtkomst. JWT-tokenen genereras baserat på WordPress-användaruppgifter och är mycket krypterad, varför säkerheten inte äventyras.
WordPress REST API Authentication plugin ger säkerheten från obehörig åtkomst till dina WordPress REST API:er.
Anta att du har en mobil-/webbapplikation och vill tillåta åtkomst till WordPress REST API-slutpunkter baserat på användarkapaciteten så att endast användare med den specifika kapaciteten ska utföra skapa/uppdateringsoperationer medan användare med andra roller bara kan se det. Sedan kan du i sådana fall autentisera REST API-slutpunkterna med JWT(JSON Web Tokens) som erhålls i enlighet med användaruppgifterna och WordPress JWT-autentisering låter dig göra det mycket säkert. Så att göra REST API-begäran med denna JWT skickad i auktoriseringshuvudet ger tillgång till resursen/datan eller ger möjligheten/auktoriseringen att utföra WordPress-operationer som kräver speciell användarkapacitet. JWT Authentication for WordPress REST API tillhandahåller kryptering av token med två metoder - HSA eller RSA och är giltig under en begränsad tid. Därför är säkerhet inte ett problem.
JWT-tokenen som genereras för JWT-autentiseringen består av WordPress-användarinformation och därför kan denna token avkodas med den giltiga hemliga nyckeln/offentliga certifikatet på en annan applikation för att skapa en användare där eller synkronisera uppdaterad användarinformation. JWT-tokenen är också en tidsbaserad token, vilket innebär att den löper ut efter en viss tidsperiod som kan ställas in enligt kraven och följaktligen efter dess utgång kommer API:erna inte att få åtkomst och inte heller användarinformationen kan avkodas vilket gör JWT Authentication for WordPress REST API en säker autentiseringsmetod.
1. WordPress REST API-begäran görs med alla nödvändiga parametrar för att få JWT-token. Det erhållna JWT-tokenet tillhandahålls i krypterat format med hjälp av HSA- eller RSA-algoritmen, så det kommer att finnas högsta säkerhet.
2. Sedan görs den faktiska WordPress REST API-begäran för att få tillgång till resursen/data eller för att utföra operationer med WordPress-databasen med JWT-token som erhölls i det sista steget skickas i Auktoriseringshuvudet med tokentyperna som Bearer och vår plugin kommer validera den JWT-token och om valideringen eller autentiseringen lyckas kommer API-begäraren att förses med resursen, annars kommer ett felsvar att returneras. Så vår plugin kommer att fungera både som JWT-tokenleverantör och JWT-tokenvalidator.
Relaterat användningsfall:
Request:POST https://<domain-name>/wp-json/api/v1/token
Body:username = <wordpress username>
password = <wordpress password>
Sample curl Request Format-
curl -d "username=<wordpress_username>&password=<wordpress_password>"
-X POST http://<wp_base_url>/wp-json/api/v1/token
Dessa API-slutpunkter kallas också som användarautentisering API eller WordPress-inloggnings-API-slutpunkt så att om vi gör en begäran till denna slutpunkt med WordPress-användaruppgifterna och om inloggningsuppgifterna är giltiga, kommer det framgångsrika svaret att returnera innehållande JWT-token, annars kommer felsvaret att visas i enlighet med detta.
Request: GET https://<domain-name>/wp-json/wp/v2/posts
Header: Authorization : Bearer <JWT token>
Sample curl Request Format-
curl -H "Authorization:Bearer <jwt_token >"
-X GET http://<wp_base_url>/wp-json/wp/v2/posts
Grattis! Du har framgångsrikt konfigurerat JWT-autentiseringsmetoden för REST API-anrop med miniOrange WordPress REST API-autentiseringsmetod.
var client = new RestClient("http://<wp_base_url>/wp-json/wp/v2/posts ");
client.Timeout = -1;
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer < jwt_token >");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
OkHttpClient client = new OkHttpClient().newBuilder().build();
Request request = new Request.Builder()
.url("http://<wp_base_url>/wp-json/wp/v2/posts ")
.method("GET", null)
.addHeader = ("Authorization", "Bearer < jwt_token >")
.build();
Response response= client.newCall(request).execute();
var settings = {
"url": "http://<wp_base_url>/wp-json/wp/v2/posts ",
"method": "GET",
"timeout": 0,
"headers": {
"Authorization": "Bearer < jwt_token >"
},
};
$.ajax(settings).done(function (response) {
console.log(response);
});
<?php
$curl = curl_init();
curl_setopt_array($curl, array
(
CURLOPT_URL => 'http://%3Cwp_base_url%3E/wp-json/wp/v2/posts%20',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer < jwt_token >'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import http.client
conn = http.client.HTTPSConnection("<wp_base_url>")
payload= "
headers = {
'Authorization': 'Bearer < jwt_token >'
}
conn.request("GET", "/wp-json/wp/v2/posts ", payload, headers)
res= conn.getresponse()
data = res.read()
print (data.decode("utf-8"))
var client = new RestClient("http://<wp_base_url>/wp-json/api/v1/token ");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AlwaysMultipartFormData = true;
request.AddParameter("username", "<wordpress_username>");
request.AddParameter("password", "<wordpress_password>");
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("username", "<wordpress_username>");
.addFormDataPart("password", "<wordpress_password>");
.build();
Request request = new Request.Builder()
.url("http://<wp_base_url>/wp-json/api/v1/token ")
.method("POST", body)
.build();
Response responseclient.newCall(request).execute();
var form = new FormData();
form.append("username", "<wordpress_username>");
form.append("password", "<wordpress_password>");
var settings = {
"url": "http://<wp_base_url>/wp-json/api/v1/token ",
"method": "POST",
"timeout": 0,
"processData": false,
"mimeType": "multipart/form-data",
"contentType": false,
"data": form
};
$.ajax(settings).done(function (response) {
console.log(response);
});
<?php
$curl = curl_init();
curl_setopt_array($curl, array
(
CURLOPT_URL => 'http://%3Cwp_base_url%3E/wp-json/api/v1/token%20',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('username' => '<wordpress_username>','password' => '<wordpress_password>'),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import http.client
import mimetypes
from codecs import encode
conn = http.client.HTTPSConnection("<wp_base_url>")
dataList= []
boundary = 'wL36Yn8afVp8Ag7AmP8qZ0SA4n1v9T'
dataList.append(encode('--' + boundary))
dataList.append(encode('Content-Disposition: form-data; name=username;'))
dataList.append(encode('Content-Type: {}'.format('text/plain')))
dataList.append(encode(''))
dataList.append(encode("<wordpress_username>"))
dataList.append(encode('--' + boundary))
dataList.append(encode('Content-Disposition: form-data; name=password;'))
dataList.append(encode('Content-Type: {}'.format('text/plain')))
dataList.append(encode(''))
dataList.append(encode("<wordpress_password>"))
dataList.append(encode('--'+boundary+'--'))
dataList.append(encode(''))
body = b'\r\n'.join(dataList)
payload= body
headers = {
'Content-type': 'multipart/form-data; boundary={}'.format(boundary)
}
conn.request("POST", "/wp-json/api/v1/token", payload, headers)
res= conn.getresponse()
data = res.read()
print (data.decode("utf-8"))
Följ stegen nedan för att göra REST API-begäran med Postman:
1. Rollbaserad REST API-begränsning:
Denna funktion tillåter begränsning av REST API-åtkomst baserat på användarrollerna. Du kan vitlista rollerna för vilka du vill tillåta åtkomst till den begärda resursen för REST-API:erna. Så närhelst en REST API-begäran görs av en användare, kommer hans roll att hämtas och får endast komma åt resursen om hans roll är vitlistad.
Hur konfigurerar man det?
Notera: Den rollbaserade begränsningsfunktionen är giltig för grundläggande autentisering (användarnamn: lösenord), JWT-metoden och OAuth 2.0 (lösenordsbeviljande).
2. Anpassad rubrik
Den här funktionen ger ett alternativ att välja en anpassad rubrik istället för standardhuvudet "Auktorisering".
Det kommer att öka säkerheten eftersom du har rubriken namngiven med ditt "anpassade namn", så om någon gör REST API-begäran med en rubrik som "Authorization" kommer han inte att kunna komma åt API:erna.
Hur konfigurerar man det?
3. Uteslut REST API:er
Den här funktionen låter dig vitlista dina REST-API:er så att dessa kan nås direkt utan autentisering. Därför är alla dessa vitlistade REST API:er offentligt tillgängliga.
Hur konfigurerar man det?
4. Anpassad tokens utgång
Den här funktionen är tillämplig för JWT- och OAuth 2.0-metoder som använder tidsbaserade tokens för att autentisera WordPress REST API-slutpunkter. Den här funktionen låter dig ställa in den anpassade utgången för tokens så att token inte längre kommer att vara giltig när token upphör.
Hur konfigurerar man det?
Därför, med denna anpassade tokens utgångsfunktion, ökar säkerheten ytterligare.
5. Signaturvalidering för JWT-baserade tokens
Denna funktion tillåter en säker signering av JWT-signaturen för JWT-token så att din JWT-token är mycket säkrare och signaturen endast kan avkodas med klienthemligheten/certifikatet. Det betyder att din signatur är privat och inte kan ses av andra.
Vi tillhandahåller stöd för 2 signeringsalgoritmer: HS256 och RS256. Så, vilken som helst av signeringsalgoritmerna kan väljas från rullgardinsmenyn som visas i bilden ovan.
Du måste också lägga till din klienthemlighet eller certifikat som används för att signera signaturen för JWT.
Maila oss vidare apisupport@xecurify.com för snabb vägledning (via e-post/möte) om ditt krav och vårt team hjälper dig att välja den bästa lämpliga lösningen/planen enligt dina krav.
Behövs hjälp? Vi är här!
Tack för din förfrågan.
Om du inte hör från oss inom 24 timmar, skicka gärna ett uppföljningsmail till info@xecurify.com
Denna sekretesspolicy gäller för miniorange webbplatser som beskriver hur vi hanterar personuppgifterna. När du besöker någon webbplats kan den lagra eller hämta informationen i din webbläsare, mestadels i form av cookies. Den här informationen kan handla om dig, dina preferenser eller din enhet och används mest för att webbplatsen ska fungera som du förväntar dig. Informationen identifierar dig inte direkt, men den kan ge dig en mer personlig webbupplevelse. Klicka på kategorirubrikerna för att kontrollera hur vi hanterar cookies. För sekretesspolicyn för våra lösningar kan du se integritetspolicy.
Nödvändiga cookies hjälper till att göra en webbplats fullt användbar genom att aktivera de grundläggande funktionerna som webbplatsnavigering, inloggning, fylla i formulär etc. De cookies som används för funktionaliteten lagrar ingen personlig identifierbar information. Vissa delar av webbplatsen kommer dock inte att fungera korrekt utan cookies.
Dessa cookies samlar endast in samlad information om trafiken på webbplatsen inklusive - besökare, källor, sidklick och visningar etc. Detta gör att vi kan veta mer om våra mest och minst populära sidor tillsammans med användarnas interaktion med de handlingsbara elementen och därmed låta oss veta mer om våra mest och minst populära sidor vi förbättrar prestandan på vår webbplats såväl som våra tjänster.