Результаты поиска :

×

Метод аутентификации REST API OAuth 2.0 для WordPress

OAuth 2.0 — один из наиболее широко используемых методов защиты доступа к конечным точкам REST API для WordPress . В отличие от традиционных методов, OAuth 2.0 позволяет авторизоваться без раскрытия электронной почты или пароля пользователя внешним приложениям. Этот процесс аутентификации использует протокол OAuth 2.0 для генерации защищенного токена доступа или идентификационного токена (токена JWT) , который затем используется для аутентификации всех запросов к API. Каждый раз, когда отправляется запрос к конечной точке REST API для WordPress , API проверяет токен Bearer , чтобы определить, можно ли получить доступ к запрошенным ресурсам. Токены, выданные через OAuth 2.0, обладают высокой степенью шифрования и безопасности, гарантируя защиту конфиденциальных данных. Хотя OAuth 2.0 похож на аутентификацию JWT , он обеспечивает повышенную безопасность и дополнительные преимущества, что делает его предпочтительным методом защиты конечных точек REST API для WordPress.



Аутентификация через REST API для WordPress

Плагин аутентификации REST API для WordPress обеспечивает защиту от несанкционированного доступа к вашим REST API для WordPress. Наш плагин предоставляет несколько методов аутентификации, таких как базовая аутентификация, аутентификация по ключу API, аутентификация OAuth 2.0 и аутентификация JWT.

Узнать больше   

  • Войдите в свою учетную запись WordPress как администратор.
  • Перейти на вордпресс Панель управления → Плагины и нажмите на Добавить новый.
  • Поиск для Аутентификация REST API плагин для WordPress и нажмите на установить сейчас.
  • После установки нажмите на активировать.


1. Предоставление пароля:


Как безопасно регистрировать или аутентифицировать пользователей WordPress на внешних платформах через REST API?

  • Если в вашем приложении есть форма авторизации, и вы хотите аутентифицировать пользователей, используя их данные, учетные данные WordPress, Аутентификация OAuth 2.0 В методе REST API это может вам помочь.
  • Плагин предоставляет API авторизации для WordPress, что позволит вам пройти учетные данные WordPress Пользователь обращается к этому API. После проверки вы получите подтверждение аутентификации и ответ, подтверждающий доступ пользователя.
  • Кроме того, Аутентификация OAuth 2.0 Метод REST API также можно использовать для регистрации новых пользователей в WordPress. учетные данные администратора. Через плагин Конечная точка токена OAuth 2.0, ты можешь отправить Учетные данные администратора WordPress для генерации токена с правами администратора.
  • Затем этот токен можно использовать для выполнения привилегированных операций, таких как: Регистрация пользователяПосле генерации токен можно использовать с Конечная точка REST API WordPress /users для безопасной регистрации пользователей в WordPress без раскрытия конфиденциальной информации для входа в систему.

2. Учетные данные клиента:


Как безопасно аутентифицировать или защитить конечные точки REST API для WordPress и зарегистрировать пользователей без использования учетных данных администратора?

  • Если вы хотите получить доступ к REST API для WordPress без обмена Учетные данные пользователя WordPressили если вы хотите безопасно регистрировать пользователей в WordPress без использования учетные данные администратора, Метод учетных данных клиента Это идеальное решение.
  • Вместо того чтобы раскрывать конфиденциальные данные для входа в систему, вы можете использовать учетные данные клиента Это обеспечивается плагином, гарантируя отсутствие риска компрометации учетных данных.
  • Плагин выступает в роли Поставщик идентификационных данных OAuth 2.0 (сервер) для выпуска защищенных токенов и в качестве Аутентификатор REST API чтобы подтвердить их.
  • После получения токен может использоваться для аутентификации. REST API конечные точки для WordPress, обеспечивая безопасный и надежный доступ.
  • Нет необходимости добавлять эту реализацию потока, поскольку мы не включили блок-схему, а реализация уже была объяснена на примере двух вариантов использования.
    • 1. Запрос к REST API будет отправлен с соответствующими параметрами для получения токена для нашего плагина. Наш плагин будет выступать в качестве поставщика идентификации OAuth 2.0 и предоставлять токен доступа.

      2. Фактический REST API-запрос для доступа к ресурсу будет выполнен с использованием токена доступа, полученного на предыдущем шаге и переданного в заголовке Authorization с типом токена Bearer. Теперь плагин выступает в роли аутентификатора для проверки подлинности API на основе действительности токена. Если токен успешно проверен, запрашивающему API будет разрешен доступ к ресурсу; в противном случае, при неудачной проверке, будет возвращен ответ с ошибкой.


Схожий пример использования:

  • Как авторизовать или зарегистрировать пользователей с помощью REST API для WordPress?
  • Как аутентифицировать пользователей WordPress с помощью API?


  • Перейдите в раздел «Настройка». Аутентификация API вкладка в плагине и выберите Аутентификация OAuth 2.0 в качестве метода.
  • Выберите Тип предоставления OAuth 2.0 as Предоставление пароля.
  • Выберите тип токена: Токен доступа or JWT-токен, Токен доступа является случайной строкой, в то время как JWT-токен Содержит закодированные данные пользователя и рекомендуется к использованию, если вам потребуется получить данные профиля WordPress позже.
  • REST API Метод аутентификации OAuth 2.0 для WordPress
  • Нажмите на Сохранить конфигурацию включить OAuth 2.0 аутентификация и защитите свой REST API конечные точки для WordPress.
  • После сохранения вы получите идентификатор клиента, Секрет клиента и Конечная точка токена для получения токена безопасности.
  • После завершения настройки выполните два вызова API: сначала для получения токена доступа/JWT, а затем для использования этого токена для аутентификации запросов REST API в WordPress.

    Я: Получите токен

    • Для получения токена доступа/JWT-токена вам потребуется выполнить вызов API к конечной точке OAuth 2.0 Token, предоставляемой нашим плагином, как показано ниже.
    • 
          Request: POST https://<domain-name>/wp-json/api/v1/token
          Body:
          grant_type =<password>
          username =<wordpress username>
          password = <wordpress password>
          client_id =<client id>
          
          Sample curl Request Format-
          curl -d "grant_type=password&username=<wordpress_username>&password=<wordpress_password>&client_id=<client_id>"
          -X POST http://<wp_base_url>/wp-json/api/v1/token
          -H 'app-name:TheAppName'
          
    • Использование токена обновления
    • 
          Request: POST  https://<domain-name>/wp-json/api/v1/token
          Body:
          grant_type = <refresh_token>
          refresh_token =  <Refresh Token>
          
          Sample curl Request Format-
          curl -d "grant_type=refresh_token&refresh_token=<refresh_token>&client_id=<client_id>&client_secret=<client_secret>"
          -X POST http://<wp_base_url>/wp-json/api/v1/token
          -H 'app-name:TheAppName'
          

    II: Отправка фактического REST API-запроса для WordPress

    • Получив access_token / id_token (JWT-токен) с помощью протокола авторизации по паролю OAuth 2.0, вы можете использовать его для запроса доступа к конечным точкам REST API для WordPress, как показано ниже.
    • 
          Request: GET https://<domain-name>/wp-json/wp/v2/posts
          Header: Authorization :Bearer <access_token /id_token>
          
    • ПРИМЕЧАНИЕ: Указанный выше токен по умолчанию действителен в течение 1 часа. Один и тот же токен можно использовать несколько раз для нескольких запросов к REST API до истечения срока его действия. После истечения срока действия токена необходимо создать новый токен для запроса доступа к конечной точке REST API WordPress.
  • Попробуйте Ответ об ошибке для OAuth 2.0 с использованием предоставления пароля.


  • В плагине перейдите в раздел «Настройка». Аутентификация API И выберите Аутентификация OAuth 2.0 в качестве метода.
  • Выберите Тип предоставления OAuth 2.0 as Предоставление учетных данных клиента.
  • REST API Метод аутентификации OAuth 2.0 для WordPress с использованием JWT
  • Нажмите Сохранить конфигурацию для включения этого метода.
  • После сохранения вы получите идентификатор клиента, Секрет клиента и Конечная точка токена.
  • Далее выполните два вызова API: один для получения токена, а другой для использования этого токена для аутентификации запросов REST API в WordPress.
  • Я: Получите токен

    • После сохранения вышеуказанных настроек вы получите идентификатор клиента (Client ID), секретный ключ клиента (Client-Secret) и конечную точку токена (Token Endpoint).
    • Чтобы получить токен, необходимо отправить запрос на получение токена, как показано ниже.
    • 
          Request: POST https://<domain-name>/wp-json/api/v1/token
          Body:
          grant_type = <client_credentials>
          client_id = <client id>
          client_secret = <client secret>
          
          Sample curl Request Format-
          curl -d "grant_type=client_credentials&client_id=<client_id>&client_secret=<client_secret>"
          -X POST http://<wp_base_url>/wp-json/api/v1/token
          -H 'app-name:TheAppName'
          
    • Использование токена обновления
    • 
          Request: POST https://<domain-name>/wp-json/api/v1/token
          Body:
          grant_type = <refresh_token>
          refresh_token = <Refresh Token>
          
          Sample curl Request Format-
          curl -d "grant_type=refresh_token&refresh_token=<refresh_token>&client_id=<client_id>&client_secret=<client_secret>"
          -X POST http://<wp_base_url>/wp-json/api/v1/token
          -H 'app-name:TheAppName'
          

    II: Отправка API-запроса

    • Получив access_token / id_token с помощью учетных данных клиента OAuth 2.0, вы можете использовать его для запроса доступа к конечной точке REST API для WordPress, как показано ниже.
    • 
          Request: GET https://<domain-name>/wp-json/wp/v2/posts
          Header: Authorization : Bearer <access_token /id_token>
    • ПРИМЕЧАНИЕ: Указанный выше токен по умолчанию действителен в течение 1 часа. Один и тот же токен можно использовать несколько раз для нескольких запросов к REST API до истечения срока его действия. После истечения срока действия токена необходимо создать новый токен для запроса доступа к конечной точке REST API в WordPress.
  • Попробуйте Ответ об ошибке для OAuth 2.0 с использованием предоставления учетных данных клиента.
  • Попробуйте документация для разработчиков Больше подробностей.


Метод OAuth 2.0 предоставляет дополнительные средства защиты , позволяя вам лучше контролировать токены и тем самым повышая общую безопасность вашего веб-сайта WordPress.


1. Токен обновления -



Аутентификация REST API OAuth 2.0 для токена обновления в WordPress

Включите опцию «Токен обновления» , чтобы получать токен обновления вместе с токеном доступа или JWT-токеном.

Пользователи могут продолжать получать доступ к тем же ресурсам без повторного входа в систему.

Токены обновления позволяют выпускать кратковременные токены доступа для повышения уровня безопасности.

Когда срок действия токена доступа истекает, токен обновления безопасно генерирует новый.


2. Отзыв токена -



REST API OAuth 2.0 Аутентификация для отзыва токена в WordPress

Включите параметр «Отозвать токен» , чтобы аннулировать существующий токен доступа или JWT-токен.

После аннулирования токен нельзя будет использовать для аутентификации REST API в WordPress.

REST API сначала проверяет учетные данные приложения и определяет, принадлежит ли токен запрашивающему приложению.

Если проверка проходит успешно, токен аннулируется; при неудачной проверке возвращается ошибка.


 
    var client = new RestClient("http://<wp_base_url>/wp-json/api/v1/token ");
    client.Timeout = -1;
    var request = new RestRequest(Method.POST);
    request.AlwaysMultipartFormDatatrue;    
    request.AddHeader("app-name", "TheAppName");
    request.AddParameter("grant_type", "client_credentials");
    request.AddParameter("client_id", "<client_id>");     
    request.AddParameter("client_secret", "<client_secret>");
    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("grant_type", "client_credentials");
    .addFormDataPart("client_id", "<client_id>");     
    .addFormDataPart("client_secret", "<client_secret>");
     .build();
    Request request  = new Request.Builder()  
    .url("http://<wp_base_url>/wp-json/api/v1/token ")
    .method("POST", null)
    .addHeader("app-name", "TheAppName")
     .build();
    Response responseclient.newCall(request).execute();
            
 
    var form = new FormData();
    form.append("grant_type", "client_credentials");
    form.append("client_id", "<client_id>");     
    form.append("client_secret", "<client_secret>");
    
    var settings  = {
        "url": "http://<wp_base_url>/wp-json/api/v1/token ",
        "method": "POST",
        "timeout": 0,
        "headers": {"app-name": "TheAppName"}
        "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',
            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_HTTPHEADER => array( 'app-name: TheAppName' )
            CURLOPT_POSTFIELDS => array('grant_type' => 'client_credentials','client_id' => '<client_id>','client_secret' => '<client_secret>'),
    
            ));          
          
    $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=grant_type;'))    
    
    dataList.append(encode('Content-Type: {}'.format('text/plain')))    
    dataList.append(encode(''))    
    
    dataList.append(encode("client_credentials"))
    dataList.append(encode('--' + boundary))    
    dataList.append(encode('Content-Disposition: form-data; name=client_id;'))    
    
    dataList.append('Content-Type: {}'.format('text/plain')))
    dataList.append(encode(''))    
    
    dataList.append(encode("<client_id>"))    
    dataList.append(encode('--'+ boundary))    
    dataList.append(encode('Content-Disposition: form-data; name=client_secret;'))
    
    dataList.append(encode('Content-Type: {}'.format('text/plain')))
    dataList.append(encode(''))
    
    
    dataList.append(encode("<client_secret<"))    
    dataList.append(encode('--'+boundary+'--'))
    dataList.append(encode(''))
    body  = b'\r\n'.join(dataList)    
    payload= body
    headers = {
      'Content-type': 'multipart/form-data; boundary={}'.format(boundary),
      'app-name': 'TheAppName'
    }
    conn.request("POST", "/wp-json/api/v1/token ", 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.AddHeader("app-name", "TheAppName");
    request.AddParameter("grant_type", "password");
    request.AddParameter("username", "<wordpress_username>");     
    request.AddParameter("password", "<wordpress_password>");    
    request.AddParameter("client_id", "<client_id>");
    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("grant_type", "password");
    .addFormDataPart("username", "<wordpress_username>");     
    .addFormDataPart("password", "<wordpress_password>");    
    .addFormDataPart("client_id", "<client_id>");
     .build();
    Request request  = new Request.Builder()  
    .url("http://<wp_base_url>/wp-json/api/v1/token ")
    .method("POST", null)
    .addHeader("app-name", "TheAppName")
     .build();
    Response responseclient.newCall(request).execute();
          
 
    var form = new FormData();
    form.append("grant_type", "password");
    form.append("username", "<wordpress_username>");     
    form.append("password", "<wordpress_password>");    
    form.append("client_id", "<client_id>");
    
    var settings  = {
        "url": "http://<wp_base_url>/wp-json/api/v1/token ",
        "method": "POST",
        "timeout": 0,
        "headers": {"app-name": "TheAppName"}
        "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_HTTPHEADER => array( 'app-name: TheAppName' )
            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=grant_type;'))    
    
    dataList.append(encode('Content-Type: {}'.format('text/plain')))    
    dataList.append(encode(''))    
    
    dataList.append(encode("password"))
    dataList.append(encode('--' + boundary))    
    dataList.append(encode('Content-Disposition: form-data; name=username;')    
    
    dataList.append('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('Content-Disposition: form-data; name=client_id;'))    
    
    dataList.append(encode('Content-Type: {}'.format('text/plain')))
    dataList.append(encode(''))
    
    dataList.append(encode("<client_id>"))    
    dataList.append(encode('--'+boundary+'--'))    
    dataList.append(encode(''))    
    
    body  = b'\r\n'.join(dataList)    
    payload= body
    headers = {
      'Content-type': 'multipart/form-data; boundary={}'.format(boundary),
      'app-name': 'TheAppName'
    conn.request("POST", "/wp-json/api/v1/token ", 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.AlwaysMultipartFormDatatrue;    
    request.AddHeader("app-name", "TheAppName");
    request.AddParameter("grant_type", "refresh_token");
    request.AddParameter("client_id", "<client_id>");     
    request.AddParameter("client_secret", "<client_secret>");
    request.AddParameter("refresh_token", "<refresh_token>");
    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("grant_type", "refresh_token");
    .addFormDataPart("client_id", "<client_id>");     
    .addFormDataPart("client_secret", "<client_secret>");
    .addFormDataPart("refresh_token", "<refresh_token>");
     .build();
    Request request  = new Request.Builder()  
    .url("http://<wp_base_url>/wp-json/api/v1/token ")
    .method("POST", null)
    .addHeader("app-name", "TheAppName")
     .build();
    Response responseclient.newCall(request).execute();
            
 
    var form = new FormData();
    form.append("grant_type", "refresh_token");
    form.append("client_id", "<client_id>");     
    form.append("client_secret", "<client_secret>");
    form.append("refresh_token", "<refresh_token>");
    
    var settings  = {
        "url": "http://<wp_base_url>/wp-json/api/v1/token ",
        "method": "POST",
        "timeout": 0,
        "headers": {"app-name": "TheAppName"}
        "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',
            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_HTTPHEADER => array( 'app-name: TheAppName' )
            CURLOPT_POSTFIELDS => array('grant_type' => 'refresh_token','client_id' => '<client_id>','client_secret' => '<client_secret>','refresh_token' => '<refresh_token>'),
    
            ));          
          
    $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=grant_type;'))    
    
    dataList.append(encode('Content-Type: {}'.format('text/plain')))    
    dataList.append(encode(''))    
    
    dataList.append(encode("refresh_token"))
    dataList.append(encode('--' + boundary))    
    dataList.append(encode('Content-Disposition: form-data; name=client_id;'))    
    
    dataList.append('Content-Type: {}'.format('text/plain')))
    dataList.append(encode(''))    
    
    dataList.append(encode("<client_id>"))    
    dataList.append(encode('--'+ boundary))    
    dataList.append(encode('Content-Disposition: form-data; name=client_secret;'))
    
    dataList.append(encode('Content-Type: {}'.format('text/plain')))
    dataList.append(encode(''))
    
    dataList.append(encode("<client_id>"))    
    dataList.append(encode('--'+ boundary))    
    dataList.append(encode('Content-Disposition: form-data; name=refresh_token;'))    
    
    dataList.append(encode('Content-Type: {}'.format('text/plain')))
    dataList.append(encode(''))
    
    dataList.append(encode("<refresh_token<")) 
    dataList.append(encode('--'+boundary+'--'))
    dataList.append(encode(''))
    
    body  = b'\r\n'.join(dataList)    
    payload= body
    headers = {
      'Content-type': 'multipart/form-data; boundary={}'.format(boundary),
      'app-name': 'TheAppName'     
    
    conn.request("POST", "/wp-json/api/v1/token ", 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.GET);
    request.AddHeader = ("Authorization", "Bearer < access_token / id_token >");
    request.AddHeader = ("app-name", "TheAppName");
    IRestResponse response = client.Execute(request);
    Console.WriteLine(response.Content);
    
 
    OkHttpClient client  = new OkHttpClient().newBuilder().build();
    MediaType mediaType = MediaType.parse("text/plain");    
    RequestBody body =  RequestBody.create(mediaType, ""); 
    Request request  = new Request.Builder()
    .url("http://<wp_base_url>//wp-json/wp/v2/posts")
    .method("GET", body)
    .addHeader = ("Authorization", "Bearer < access_token / id_token >"); 
    .addHeader = ("app-name", "TheAppName"); 
     .build();
    Response responseclient.newCall(request).execute();
          
 
    var settings  = {
        "url": "http://<wp_base_url>/wp-json/wp/v2/posts ",
        "method": "GET",
        "timeout": 0,
        "headers": {
          "Authorization": "Bearer < access_token / id_token >",
          "app-name": "TheAppName"
        },
      };      
        
        $.ajax(settings).done(function (response)  {
        console.log(response);
        });
        
 
    <?php
     $curl = curl_init();
    curl_setopt_array($curl, array 
        ( 
            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 < access_token / id_token >',
                'app-name: TheAppName'
    );
    ));
    
    $response = curl_exec($curl);
    curl_close($curl);    
    echo $response;
          
 
     import http.client
    
        
    conn   = http.client.HTTPSConnection("<wp_base_url>")
    payload = "
    headers =  {
        'Authorization': 'Bearer < access_token / id_token >',
        'app-name': 'TheAppName',
      }
    
    conn.request("GET", "/wp-json/wp/v2/posts ", payload, headers)    
    res= conn.getresponse()    
    data = res.read()    
    print (data.decode("utf-8"))   
    

  • Пример запроса для получения токена:
  • Вы можете скачать пример запроса Postman по ссылке: здесь.
  • Теперь извлеките архива и импортировать извлеченные данные JSON файл в Заявка на должность почтальона.
  • REST API OAuth 2.0 Метод аутентификации для реализации Postman в WordPress
  • Пример
  • REST API OAuth 2.0 Метод аутентификации для метода postman заменить URL фактического ресурса в WordPress
  • Пример формата запроса на получение ресурсов с использованием токена, полученного на предыдущем шаге.
  • Вы можете скачать пример запроса Postman по ссылке: здесь.
  • Теперь извлеките архива и импортировать извлеченные данные JSON файл в Заявка на должность почтальона.
  • REST API OAuth 2.0 — метод аутентификации для реализации Postman в WordPress.
  • Пример
  • REST API OAuth 2.0 Метод аутентификации для Postman (замена URL-адреса на реальный ресурс) в WordPress

  • Пример запроса для получения токена:
  • Вы можете скачать пример запроса Postman по ссылке: здесь.
  • Теперь извлеките архива и импортировать извлеченные данные JSON файл в Заявка на должность почтальона.
  • REST API OAuth 2.0 — метод аутентификации для реализации Postman в WordPress.
  • Пример
  • REST API OAuth 2.0 Метод аутентификации для Postman (замена URL-адреса на реальный ресурс) в WordPress

  • Вы можете скачать пример запроса Postman по ссылке: здесь.
  • Теперь извлеките архива и импортировать извлеченные данные JSON файл в Заявка на должность почтальона.
  • REST API OAuth 2.0 — метод аутентификации для реализации Postman в WordPress.
  • Пример
  • REST API OAuth 2.0 — метод аутентификации для фактического ресурса по URL-адресу Postman в WordPress.


1. Ограничение REST API на основе ролей:


Эта функция ограничивает доступ к REST API для WordPress в зависимости от ролей пользователей . Вы можете добавить в список разрешенных пользователей определенные роли, которым разрешен доступ к определенным ресурсам REST API . При отправке запроса к REST API проверяется роль пользователя, и доступ предоставляется только в том случае, если роль находится в списке разрешенных пользователей.


Как настроить ограничение доступа к REST API на основе ролей в WordPress?

  • Перейдите к плагину Дополнительные настройки меню.
  • В Ограничение на основе ролей В этом разделе всем ролям по умолчанию разрешен доступ к API.
  • Установите флажок рядом с ролями, которым вы хотите ограничить доступ к API.
  • REST API — метод базовой аутентификации для реализации Postman в WordPress.
  • На скриншоте выше флажок роли подписчика включен. Поэтому, если пользователь, имеющий роль подписчика, отправляет API-запрос, ему будет отказано в доступе к запрошенному ресурсу.

Примечание: Функция ограничения доступа на основе ролей действительна для базовой аутентификации (Имя пользователя: пароль), метода JWT и OAuth 2.0 (предоставление доступа по паролю).


2. Пользовательский заголовок:


Функция «Пользовательский заголовок» позволяет использовать собственный заголовок вместо стандартного заголовка «Авторизация».

Это обеспечивает дополнительный уровень безопасности, поскольку REST API принимает запросы только с заданным вами пользовательским именем заголовка . Если кто-то попытается отправить запрос, используя заголовок «Authorization» по умолчанию , доступ будет запрещен.


Как настроить пользовательский заголовок для аутентификации REST API в WordPress?

  • Перейдите к плагину Дополнительные настройки меню.
  • В Пользовательский заголовок В этом разделе введите желаемое название заголовка в текстовое поле.
  • Сохранить изменения для применения нового пользовательского заголовка к запросам API.
  • REST API Метод базовой аутентификации для реализации Postman в WordPress

3. Исключите REST API:


Функция «Исключить REST API» позволяет разрешить доступ к определенным конечным точкам REST API без аутентификации. Эти исключенные API становятся общедоступными, что делает их доступными без необходимости ввода токена или авторизации.


Как настроить исключение REST API при аутентификации JWT?

  • Перейдите к плагину Дополнительные настройки меню.
  • В Исключить REST API В этом разделе введите конечные точки вашего API в требуемом формате.
  • Введенные API-интерфейсы будут исключены из процесса аутентификации и станут доступны для публичного доступа.
  • REST API Метод базовой аутентификации для реализации Postman в WordPress
  • Пример: Предположим, вы хотите исключить REST API ' ' Затем вам нужно ввести '/wp-json/wp/v2/posts' в текстовое поле.

4. Включите расширенное шифрование для токенов с использованием HMAC:


Эта функция доступна в методе базовой аутентификации . По умолчанию токены шифруются с использованием кодировки Base64 , но с помощью расширенной опции можно включить шифрование HMAC для токенов. HMAC обеспечивает гораздо более высокий уровень безопасности, гарантируя надежную защиту запросов API от несанкционированного доступа и изменения данных.

Как настроить шифрование HMAC для токенов в базовой аутентификации WordPress?

  • Перейдите к плагину Дополнительные настройки вкладку и откройте Метод шифрования токена .
  • Выбрать HMAC вместо Base64, то Сохранить изменения применить надежное шифрование ко всем токенам.
  • REST API Метод базовой аутентификации для реализации Postman в WordPress


 Спасибо за ваш ответ. Мы свяжемся с вами в ближайшее время.

Что-то пошло не так. Пожалуйста, отправьте запрос ещё раз.


ADFS_sso ×
Привет!

Нужна помощь? Мы здесь!

поддержка