WordPress REST API Authentication plugin ger säkerheten från obehörig åtkomst till dina WordPress REST API:er.
Sökresultat :
×WordPress REST API Basic Authentication låter dig verifiera åtkomst till WordPress REST API:er genom att validera en API-token som genereras från användarnamnet, lösenordet eller klientuppgifterna.
Närhelst en begäran görs för att få åtkomst till en WordPress REST API-slutpunkt, genomgår den autentisering mot den associerade token. Därefter bestäms åtkomst till resurserna för den specifika API-begäran baserat på framgångsrik validering av denna API-token. För att upprätthålla säkerheten är åtkomsttoken krypterad för att förhindra eventuella säkerhets-/dataintrång.
WordPress REST API Authentication plugin ger säkerheten från obehörig åtkomst till dina WordPress REST API:er.
1. Baserat på användaruppgifter:
Anta att du har en Android/iOS-app och har gett dina användare funktionen att lägga upp sina personliga flöden eller bloggar i mobilappen.
I det här fallet bör förfrågningar på din mobilapp autentiseras.
WordPress Basic Authentication REST API med användarnamn och lösenord är den bästa autentiseringsmetoden för detta fall. Det kommer att vara användbart att utföra WordPress-operationer via REST-API:er som involverar användarbehörigheter eller -funktioner.
Användarsessionen kommer att skapas, och på grundval av deras WordPress-möjligheter kommer han/hon att tillåtas komma åt REST API-innehållet eller utföra önskade operationer.
2. Baserat på kunduppgifter:
Föreställ dig att du har en Android- eller iOS-applikation och vill interagera med WordPress-innehåll genom dess REST API-slutpunkter. Du är dock ovillig att använda WP-användaruppgifter för att förhindra eventuell exponering som kan göra det möjligt för en inkräktare att få obehörig åtkomst till WP-webbplatsen.
I ett sådant scenario är det tillrådligt att använda WordPress Basic Authentication Rest API, med ett klient-ID och klienthemlighet för att skydda dina WP-användaruppgifter.
Med den här metoden behöver du bara inkludera klient-ID och klienthemlighet som insticksprogrammet tillhandahåller i varje begäran. Följaktligen förblir säkerheten kompromisslös, eftersom klient-ID och hemlighet överförs i ett krypterat format i huvudet för grundläggande auktorisering för varje API-begäran. Dessa referenser valideras sedan, och efter framgångsrik validering ger WP API Basic Auth åtkomst till de begärda API:erna.
REST API Basic Auth med användarnamn och lösenord:
REST API Basic Auth med klient-ID och klienthemlighet:
Request: GET https://<domain-name>/wp-json/wp/v2/posts
Header: Authorization: Basic base64encoded <client-id:client-secret>
Sample Request Format-
Example => Client ID : pSYQsKqTndNVpNKcnoZd and Client Secret : SrYPTViHdCbvkWyTfWrSltavTMeJjaOHCye
Sample curl Request Format-
curl -H "Authorization:Basic base64encoded <clientid:clientsecret>"
-X POST http://<wp_base_url>/wp-json/wp/v2/users
-d"username=test&email=test@test.com&password=test&name=test"
base64_encode(‘pSYQsKqTndNVpNKcnoZd:SrYPTViHdCbvkWyTfWrSltavTMeJjaOHCye’) will results into
‘cFNZUXNLcV RuZE5WcE5LY25vWmQ6U3JZUFRWaUhkQ2J2a1d5VGZXclNsdGF2VE1lSmphT0hDeWU=’ as output.
Sample request: GET https://<domain-name>/wp-json/wp/v2/posts
Header: Authorization :Basic eGw2UllOdFN6WmxKOlNMRWcwS1ZYdFVrbm5XbVV2cG9RVFNLZw==
REST API Basic Auth med användarnamn och lösenord:
Request: GET https://<domain-name>/wp-json/wp/v2/posts
Header: Authorization: Basic base64encoded <username:password>
Sample Request Format-
Example => username : testuser and password : password@123
Sample curl Request Format-
curl -H "Authorization:Basic base64encoded <username:password>"
-X POST http://<wp_base_url>/wp-json/wp/v2/posts -d "title=sample post&status=publish"
base64_encode(‘testuser:password@123’) will results into ‘eGw2UllOdFN6WmxKOlNMRWcwS1ZYdFVrbm5XbVV2cG9RV FNLZw==’ as output.
Sample request: GET https://<domain-name>/wp-json/wp/v2/posts
Header: Authorization : Basic eGw2UllOdFN6WmxKOlNMRWcwS1ZYdFVrbm5XbVV2cG9RVFNLZw==
var client = new RestClient("http://<wp_base_url>/wp-json/wp/v2/posts ");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AlwaysMultipartFormData = true;
request.AddParameter("title", "Sample Post");
request.AddParameter("status", "publish");
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("title","Sample Post")
.addFormDataPart("status", "publish")
.build();
Request request = new Request.Builder()
.url("http://<wp_base_url>/wp-json/wp/v2/posts ")
.method("POST", body)
.build();
Response responseclient.newCall(request).execute();
var form = new FormData();
form.append("title","Sample Post");
form.append("status", "publish");
var settings = {
"url": "http://<wp_base_url>/wp-json/wp/v2/posts ",
"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/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 => 'POST',
CURLOPT_POSTFIELDS => array('title' => 'Sample Post','status' => 'publish'),
));
$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=title;'))
dataList.append(encode('Content-Type: {}'.format('text/plain')))
dataList.append(encode(''))
dataList.append(encode("Sample Post"))
dataList.append(encode('--' + boundary))
dataList.append(encode('Content-Disposition: form-data; name=status;'))
dataList.append('Content-Type: {}'.format('text/plain')))
dataList.append(encode(''))
dataList.append(encode("publish"))
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/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/wp/v2/posts ");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Basic base64encoded < clientid:clientsecret > ");
request.AlwaysMultipartFormData = true;
request.AddParameter("username", "test");
request.AddParameter("email", "test@test.com");
request.AddParameter("password", "test");
request.AddParameter("name", "test");
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","test")
.addFormDataPart("email","test@test.com")
.addFormDataPart("password","test")
.addFormDataPart("name","test")
.build();
Request request = new Request.Builder()
.url("http://<wp_base_url>/wp-json/wp/v2/posts ")
.method("POST", body)
.addHeader ("Authorization", "Basic base64encoded < clientid:clientsecret > ")
.build();
Response responseclient.newCall(request).execute();
var form = new FormData();
form.append("username", "test");
form.append("email", "test@test.com");
form.append("password", "test");
form.append("name", "test");
var settings = {
"url": "http://<wp_base_url>/wp-json/wp/v2/posts ",
"method": "POST",
"timeout": 0,
"headers": {
"Authorization": "Basic base64encoded < clientid:clientsecret > "
},
"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/wp/v2/users',
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' => 'test','email' => 'test@test.com','password' => 'test','name' => 'test'),
CURLOPT_HTTPHEADER => array(
'Authorization: Basic base64encoded < clientid:clientsecret > '
),
))
$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("test"))
dataList.append(encode('--' + boundary))
dataList.append(encode('Content-Disposition: form-data; name=email;'))
dataList.append('Content-Type: {}'.format('text/plain')))
dataList.append(encode(''))
dataList.append(encode("test@test.com"))
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("test"))
dataList.append(encode('--' + boundary))
dataList.append(encode('Content-Disposition: form-data; name=name;'))
dataList.append(encode('Content-Type: {}'.format('text/plain')))
dataList.append(encode(''))
dataList.append(encode("test"))
dataList.append(encode('--'+boundary+'--'))
dataList.append(encode(''))
body = b'\r\n'.join(dataList)
payload= body
headers = {
'Authorization': 'Basic base64encoded < clientid:clientsecret > ',
'Content-type': 'multipart/form-data; boundary={}'.format(boundary)
}
conn.request("POST", "/wp-json/wp/v2/posts ", 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:
a) För användarnamn-lösenord
Exempelvis:
För användarnamn: testanvändare och lösenord: password@123 kommer det base64-kodade värdet att vara 'dGVzdHVzZXI6cGFzc3dvcmRAMTIz'
b) För klient-ID och klienthemlighet
Den här funktionen låter dig begränsa REST API-åtkomst i enlighet med användarroller. Du har möjlighet att ange de roller som är tillåtna för åtkomst till den begärda resursen via REST API:er. Följaktligen, när en användare gör en REST API-begäran, kontrolleras deras roll, och åtkomst till resursen beviljas exklusivt om deras roll ingår i vitlistan.
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).
Den här funktionen erbjuder möjligheten att välja en personlig rubrik istället för standard 'Tillstånd' rubrik. Detta ökar säkerheten genom att du kan namnge rubriken enligt dina egna önskemål. Följaktligen, om någon försöker göra en REST API-begäran med en rubrik som heter 'Tillstånd,' kommer de att få åtkomst till API:erna.
Hur konfigurerar man det?
Den här funktionen låter dig ange vissa REST-API:er som vitlistade, vilket gör att de kan nås direkt utan behov av autentisering. Följaktligen blir alla dessa vitlistade REST API:er offentligt tillgängliga.
Hur konfigurerar man det?
Denna funktion erbjuds inom den grundläggande autentiseringsmetoden, där token vanligtvis krypteras med Base64-kodning som standard. Men med det avancerade alternativet kan token krypteras med den mycket säkra HMAC-krypteringsmetoden, vilket garanterar en mycket hög säkerhetsnivå.
Maila oss vidare oauthsupport@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.