logo

Լրացուցիչ Բլոկների Տեսակներ (EBT) - Դասավորության Կառուցողի նոր փորձառություն❗

Լրացուցիչ Բլոկների Տեսակներ (EBT) - ձևավորված, կարգավորելի բլոկների տեսակներ՝ սլայդշոուներ, ներդիրներ, քարտեր, բացվող ցանկեր և շատ ուրիշներ։ Ներառված կարգավորումներ՝ ֆոնի, DOM տուփի, JavaScript փլագինների համար։ Փորձեք դասավորությունների կառուցման ապագան արդեն այսօր։

EBT մոդուլների ցուցադրական տարբերակներ Ներբեռնել EBT մոդուլները

❗Լրացուցիչ Պարբերությունների Տեսակներ (EPT) - Պարբերությունների նոր փորձառություն

Լրացուցիչ պարբերության տեսակներ (EPT) - անալոգիական պարբերության վրա հիմնված մոդուլների հավաքակազմ։

EPT մոդուլների ցուցադրական տարբերակներ Ներբեռնել EPT մոդուլները

Scroll
18/05/2025, by Ivan

API Key Authentication-ը Drupal REST API-ները պաշտպանելու ամենապարզ մեթոդներից մեկն է։ Երբ բոլոր օգտվողների համար գեներացվում են API բանալիներ (Key-եր), ապա դրանցով կարելի է ապահովել մուտքի անվտանգություն ձեր Drupal REST API-ների համար։

Դուք կարող եք դա անել՝ յուրաքանչյուր API հարցման Authorization վերնագրում փոխանցելով օգտվողի Drupal username-ը և API բանալին։ Drupal API Authentication մոդուլը կհավաստի հարցումը՝ օգտագործողի անունով և համապատասխան API key-ով։ Այս մոդուլը համատեղելի է Drupal 7, Drupal 8, Drupal 9, Drupal 10 և Drupal 11 տարբերակների հետ։

 Ներբեռնել 

Կարգավորման տեսանյութ․

 Drupal REST API Key Authentication Youtube Video

Նախադրյալներ՝ ներբեռնում և տեղադրում․

  • Ներբեռնեք և տեղադրեք Drupal REST & JSON API Authentication մոդուլը։
  • REST UI․ Այս մոդուլը տրամադրում է REST մոդուլի կարգավորման ինտերֆեյս։ 
  • Ձեր Drupal կայքում (Extend բաժին /admin/modules) միացրեք հետևյալ Web Services մոդուլները․
    • REST UI
    • RESTful Web Services
    • Serialization

    Drupal Rest api

API Key-ով նույնականացման կարգավորման քայլեր Drupal-ում․

  • Լավ պատկերացման համար դիտարկենք օրինակ՝ ինչպես ավելացնել API Key-ով նույնականացում՝ օգտվող ստեղծելու API-ի համար Drupal-ում։
  • Նշում․ Drupal-ի /entity/user API-ն օգտագործվում է օգտվող ստեղծելու համար։

Միացրեք API-ն և նշանակեք մեթոդներ և գործողություններ․

  • Առաջին քայլը API-ն միացնելն ու անհրաժեշտ մեթոդներն ու գործողությունները ընտրելն է տվյալ API-ի համար։ Սա կարելի է անել REST UI մոդուլով կամ ուղղակի փոփոխել config-ը։
  • REST UI մոդուլով API-ն միացնելու համար սեղմեք Configure կոճակը REST UI մոդուլի դիմաց (տես նկարում)։

    api key

  • Մեր օրինակում պետք է միացնել /entity/user API-ն։ Enable կոճակով ակտիվացրեք այն։

    api key

  • Քանի որ նպատակը Drupal-ում օգտվող ստեղծելն է, ընտրեք հետևյալ կարգավորումները․
    • Մեթոդ՝ POST
    • Ֆորմատ՝ json
    • Նույնականացման մատակարար՝ rest_api_authentication.
  • rest_api_authentication ընտրելով՝ հնարավորություն եք տալիս miniOrange REST API Authentication մոդուլին նույնականացնել /entity/user API-ն։ Սեղմեք Save Configuration՝ շարունակելու համար։

    drupal select

Ստեղծեք API Key դաշտ օգտվողների համար Drupal-ում․

Նշում. Եթե օգտագործում եք մոդուլի անվճար տարբերակը, կարող եք այս քայլը բաց թողնել։

Այս քայլում սահմանում ենք, թե ինչպես է օգտագործվում API key-ն API կանչերը նույնականացնելու համար։ Սկզբում անհրաժեշտ է ստեղծել օգտվողների դաշտ՝ API key պահելու համար։

  • Անցեք Manage Fields (/admin/config/people/accounts/fields) բաժին։
  • Դաշտ ավելացնելու համար սեղմեք Add field կոճակը։

    manage fields

  • Այժմ Add a new field ցուցակից ընտրեք Text (Plain) և լեյբլի տեքստի դաշտում գրեք API Key։ Սեղմեք Save and continue՝ կարգավորումները պահպանելու համար։
  • Համոզվեք, որ դաշտի մեքենայական անունը լինի field_api_key.

    Add field

  • Սեղմեք Save field settings, այնուհետև Save Settings՝ դաշտի ստեղծումն ավարտելու համար։

    Save field

    Drupal API key settings

  • Հիմա կարող եք տեսնել նոր API Key դաշտը ձեր օգտվողի պրոֆիլում։

Կարգավորեք API Key-ով նույնականացումը․

  • Այս քայլում կգեներացնենք API Key. Անցեք REST API Authentication մոդուլի API Authentication բաժին՝ (/admin/config/people/rest_api_authentication/auth_settings)
  • Նշեք Enable Authentication և սեղմեք Save Settings։
  • API Key-ով նույնականացումը միացնելու համար ընտրեք API Key ռադիո կոճակը։
  • Այս էջում կարող եք գեներացնել API key թե՛ որոշակի օգտվողի, թե՛ բոլոր օգտվողների համար միանգամից։
  • Այս պահին գեներացնում ենք միայն մեկ օգտվողի համար։
  • Enter username դաշտում նշեք այն օգտվողի անունը, ում համար ցանկանում եք գեներացնել API key, ապա սեղմեք Generate API key for this user կոճակը։
  • Հիմա կարող եք տեսնել գեներացված API key-ը օգտվողի պրոֆիլի API Key դաշտում։

    REST API create key

  • Պահպանեք API key-ը, այն անհրաժեշտ կլինի API-հարցումները նույնականացնելիս։

Տվեք Drupal-ի դերերին օգտվող ստեղծելու իրավունք․

  • Անհրաժեշտության դեպքում կարող եք ոչ ադմինիստրատոր դերերին օգտվող ստեղծելու իրավունք տալ։ Դա կարող եք անել նրանց Administer users թույլտվություն տալով (Permission բաժին՝ /admin/people/permissions)։

    REST API

Ահա և վերջ!!!

  • Այժմ կարող եք փորձել օգտվող ստեղծել Drupal-ում՝ օգտագործելով API key-ով նույնականացում API call-ի ժամանակ։

Օրինակ․

  • Օգտվող ստեղծելու համար POST հարցում պետք է ուղարկել, որտեղ օգտագործվում են օգտվողի username-ը և API key-ը, որոնք տրամադրված են miniOrange REST API Authentication մոդուլի կողմից։ username-ը և API key-ը պետք է base64 կոդավորված լինեն։ Ստորև ներկայացված է հարցման ձևաչափը․

    Հարցում․ POST <your_drupal_base_url>/entity/user?_format=json
    Վերնագիր․ Authorization: Basic base64encoded <username:api_key>
                 Accept: application/json
                 Content-Type: application/json

    Մարմին․

    {
                "name": [
                                {"value": "<username>"}
                    ],
               "mail": [
                            {"value": "<email>"}
                    ],
                "pass":[
                            {"value": "<password>"}
                    ],
                "status":[
                            {"value": "1"}
                    ]
    }

    CURL հարցման ձևաչափ․

    curl --location --request POST  ‘<your_drupal_base_url>/entity/user?_format=json' \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Basic base64encoded<username:API key>’ \
    --data-raw '  

    {
        "name": [
            {"value": "Username"}
        ],
        "mail": [
            {"value": "email"}
        ],
        "pass":[
            {"value": "Password"}
        ],
        "status":[
            {"value": "1"}
        ]
    }'

  • Կարող եք օգտվել նաև ներքևում ներկայացված Postman-ի հարցման պատկերից․

    postman

  • Հաջող պատասխանը վերադարձնում է ստեղծված օգտվողի տվյալները (տես նկարը)։

    Postman response

  • Եթե պատասխանում ստանում եք սխալ, կարող եք օգտվել ստորև ներկայացված աղյուսակից՝ սխալի նկարագրությամբ և հնարավոր լուծումներով։

Սխալի պատասխաններ․

Սխալ Նկարագրություն
MISSING_AUTHORIZATION_HEADER

Այս սխալը կստանաք, եթե API հարցման մեջ Authorization Header չեք ուղարկել կամ այն սերվերի կողմից հեռացվել է։

Օրինակ:
{
  "status": "error",
  "error": "MISSING_AUTHORIZATION_HEADER",
  "error_description": "Authorization header not received."
}

INVALID_AUTHORIZATION_HEADER_TOKEN_TYPE Այս սխալը կստանաք, եթե Authorization header-ը սխալ ձևաչափով է ուղարկվել։
Օրինակ:
{
  "status": "error",
  "error": "INVALID_AUTHORIZATION_HEADER_TOKEN_TYPE",
  "error_description": "Authorization header must be the type of Basic Authentication."
}
USER_DOES_NOT_EXIST

Այս սխալը կստանաք, եթե հարցման մեջ նշված username-ով օգտվող գոյություն չունի։

Օրինակ:
{
  "status": "error",
  "error": "USER_DOES_NOT_EXIST",
  "error_description": "The user does not exist."
}

INVALID_API_KEY

Այս սխալը կստանաք, եթե հարցման մեջ նշված API key-ը սխալ է։

Օրինակ:
{
  "status": "error",
  "error": "INVALID_API_KEY",
  "error_description": "The API Key sent in the Request seems to be invalid or incorrect using invalid API Key."
}

USER_NAME_MISSING

Այս սխալը կստանաք, եթե հարցման մեջ username-ը բացակայում է։

Օրինակ:
{
  "status": "error",
  "error": "USER_NAME_MISSING",
  "error_description": "The username is missing from the request"
}

INVALID_AUTHORIZATION_HEADER

Այս սխալը կստանաք, եթե վերնագիրը սխալ է կոդավորված կամ username և API key-ը վերնագրում չեն հայտնաբերվել։

Օրինակ:
{
  "status": "error",
  "error": "INVALID_AUTHORIZATION_HEADER",
  "error_description": "The authorization header seems to be invalid"
}

Հոդվածը վերցված է Drupal Documentation-ից։