Կարգավորեք հիմնական նույնականացումը REST API նույնականացման մոդուլի միջոցով
Հիմնական (Basic) Authentication-ը շատ պարզ և ուղիղ նույնականացման մեթոդ է։ Հաճախորդը HTTP հարցման Authorization վերնագրում ուղարկում է ձեր Drupal կայքի օգտվողի անունն ու գաղտնաբառը base64 կոդավորված ձևաչափով։
Basic Authentication-ում miniOrange API authentication մոդուլը նախ նույնականացնում է օգտվողին Drupal-ի username-ով և գաղտնաբառով։ Միայն եթե օգտվողը ճիշտ է նույնականացվում, ապա կարող է կատարել համապատասխան գործողությունը։ Այս մոդուլը համատեղելի է Drupal 7, Drupal 8, Drupal 9, Drupal 10 և Drupal 11 տարբերակների հետ։
Կարգավորման տեսանյութ․
Նախադրյալներ՝ ներբեռնում և տեղադրում․
- Ներբեռնեք և տեղադրեք Drupal REST & JSON API Authentication մոդուլը։
- REST UI: Այս մոդուլը տրամադրում է REST մոդուլի կարգավորման ինտերֆեյս։
- Ձեր Drupal կայքում (Extend բաժին /admin/modules) միացրեք հետևյալ Web Services մոդուլները․
- JSON: API
- REST UI
- RESTful Web Services
- Serialization
Basic Authentication մեթոդի կարգավորման քայլերը Drupal-ում․
- Լավ պատկերացման համար դիտարկենք օրինակ՝ ինչպես ավելացնել Basic authentication՝ node ստանալու համար Drupal REST API-ով։
- Նշում․ Drupal-ի /node/{node} API-ն օգտագործվում է Drupal node-ի տվյալները ստանալու համար։
Միացրեք API-ն, նշանակեք մեթոդներ և գործողություններ․
- Առաջին քայլը API-ն միացնելն է, ինչպես նաև տվյալ API-ի համար թույլատրելի մեթոդները և գործողությունները ընտրելը։ Սա կարող եք անել REST UI մոդուլով կամ ուղղակի փոփոխել config-ը։
- REST UI մոդուլով API-ն միացնելու համար սեղմեք configure կոճակը REST UI մոդուլի դիմաց (տես նկարում)։
- Օրինակով՝ պետք է միացնել /node/{node} API-ն, որը գտնվում է Content բաժնում։ Enable տարբերակով ակտիվացրեք այն։
- Քանի որ նպատակն է node-ի տվյալներ ստանալ, ընտրեք հետևյալ կարգավորումները․
- Մեթոդ՝ GET
- Ֆորմատ՝ json
- Նույնականացման մատակարար՝ rest_api_authentication.
- Սա հնարավորություն է տալիս miniOrange REST API Authentication մոդուլին ձեր API-ն նույնականացնել։ Սեղմեք Save Configuration՝ շարունակելու համար։
Basic Authentication-ի միացման քայլեր․
- Այս քայլում, որպես API Authentication մեթոդ, միացնում ենք Basic Authentication-ը։ Դրա համար անցեք REST API Authentication մոդուլի API Authentication ներդիր (/admin/config/people/rest_api_authentication/auth_settings)։
- Նշեք Enable Authentication տուփը և սեղմեք Save Settings։
- Save Settings-ից ներքև ընտրեք Basic Authentication և սեղմեք select method կոճակը։
Ահա և վերջ!!!
Այժմ կարող եք փորձել node-ի տվյալներ ստանալ API հարցմամբ՝ օգտագործելով Basic authentication։
Օրինակ․
- Node-ի տվյալներ ստանալու համար պետք է GET հարցում ուղարկել՝ օգտագործողի Drupal username-ն ու password-ը կցելով base64 կոդավորված ձևաչափով։ Ստորև ներկայացված է հարցման ձևաչափը․
Հարցում․ GET <your_drupal_base_url>/node/{node}?_format=json
Վերնագիր․
Authorization: Basic base64encoded <username:password>
Accept: application/json
Content-Type: application/jsonCURL հարցման ձևաչափ․
curl --location --request GET 'drupal_base_url/node/1?_format=json' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic base64encoded <username:password'>
- Կարող եք օգտվել նաև ներքևում ներկայացված Postman-ի հարցման պատկերից․
- Հաջող պատասխանը վերադարձնում է ստեղծված node-ի տվյալները (տես նկարը)։
- Եթե պատասխանում ստանում եք սխալ, կարող եք օգտվել ստորև ներկայացված աղյուսակից՝ սխալի նկարագրությամբ և հնարավոր լուծումներով։
Սխալ |
Նկարագրություն |
MISSING_AUTHORIZATION_HEADER |
Այս սխալը կստանաք, եթե API հարցման մեջ Authorization Header չեք ուղարկել կամ այն սերվերի կողմից հեռացվել է։ Օրինակ: |
INVALID_AUTHORIZATION_HEADER_TOKEN_TYPE |
Այս սխալը կստանաք, եթե Authorization header-ը ճիշտ ձևաչափով չէ։ |
USER_NAME_MISSING |
Այս սխալը կստանաք, եթե հարցման մեջ username-ը հայտնաբերված չէ։ Օրինակ: |
INVALID_CREDENTIALS |
Այս սխալը կստանաք, եթե username-ը կամ password-ը սխալ է։ Օրինակ: |