logo

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

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

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

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

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

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

Scroll

Կարգավորեք մուտքի տոկենը / OAuth-ի վրա հիմնված նույնականացումը

18/05/2025, by Ivan

OAuth (Բաց Ինքնավավերացում) բաց ստանդարտ է թոքենով նույնականացման և լիազորման համար, որը կարող է օգտագործվել Single Sign-On (SSO) ապահովելու նպատակով։ OAuth-ը թույլ է տալիս վերջնական օգտվողի հաշվի որոշակի տեղեկատվություն օգտագործել երրորդ կողմի ծառայությունների կողմից (օր.՝ Facebook և այլն)՝ առանց օգտվողի գաղտնաբառը բացահայտելու։ Այն գործում է որպես միջնորդ՝ օգտվողի անունից, ծառայությանը տրամադրելով մուտքի թոքեն, որը լիազորում է մասնակի տեղեկատվության փոխանցում։

Այս Drupal API նույնականացման մեթոդը օգտագործում է OAuth 2.0 պրոտոկոլ՝ անվտանգության մուտքի թոքեն ստանալու համար։ Այս թոքենը օգտագործվում է ձեր Drupal կայքի API-ներին մուտք գործելու համար։ OAuth մեթոդը տրամադրում է բարձր մակարդակի կոդավորված և ապահով թոքեն, ապահովելով ձեր Drupal API-ների պաշտպանված լինելը։ Այն համարվում է ամենաապահով եղանակներից մեկը՝ կանխելու ոչ թույլատրելի մուտքը ձեր Drupal REST կամ JSONAPI վերջնակետերին։ Այս մոդուլը համատեղելի է Drupal 7, Drupal 8, Drupal 9, Drupal 10 և Drupal 11 տարբերակների հետ։

 Ներբեռնել  

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

 Drupal REST API OAuth/Access Token Authentication Youtube Video

OAuth 2.0-ում ներգրավված են հետևյալ երեք կողմերը․

  • Օգտվողը ունի տվյալներ, որոնց մուտքը ստացվում է API-ով և ցանկանում է թույլատրել հավելվածին մուտք գործել դրանց։
  • Հավելվածը ցանկանում է API-ով օգտվողի տվյալներին մուտք գործել օգտվողի անունից։
  • API վերջնակետը վերահսկում և ապահովում է օգտվողի տվյալների հասանելիությունը։

API-ն մուտք կտրամադրի միայն այն դեպքում, երբ հավելվածից ստանա վավեր մուտքի թոքեն։ Թոքենը ստանալու եղանակը կախված է ընտրված OAuth սխեմայից։

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

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

    Մոդուլների ակտիվացում

OAuth/Access Token-ով API նույնականացման կարգավորման քայլեր․

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

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

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

    REST UI

  • Օրինակի համար միացրեք /user/{user} API-ն, որը գտնվում է Content բաժնում։ Սեղմեք Enable կոճակը։

    REST API

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

    REST API

OAuth/Access Token-ով API նույնականացման կարգավորում․

  • Այս քայլում OAuth/Access Token-ը կարգավորում ենք որպես API Authentication մեթոդ։ Դրա համար անցեք REST API Authentication մոդուլի API Authentication ներդիր (/admin/config/people/rest_api_authentication/auth_settings) հասցեով։
    • Նշեք Enable Authentication տուփը և սեղմեք Save Settings։
    • Save Settings-ից ներքև ընտրեք OAuth/Access Token ռադիո կոճակը։
    • Սեղմեք Generate a new Client ID & Secret կոճակը։
  • Պահպանեք Client ID-ն և Secret-ը, դրանք պետք են գալու օգտվողի տվյալների API-ին նույնականացնելիս։

    Generate a new client ID

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

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

    REST API

Ահա և վերջ!!!

Այժմ կարող ենք փորձել օգտվողի տվյալները ստանալ API-հարցմամբ՝ օգտագործելով OAuth/Access Token նույնականացումը։

Օրինակներ․

  • Նախ պետք է կատարենք API-հարցում՝ մուտքի թոքեն ստանալու համար։ Այնուհետև այդ թոքենը կօգտագործենք Drupal API-ն նույնականացնելու համար՝ օգտվողի տվյալներ ստանալու հարցման ժամանակ։
  • miniOrange API Authentication մոդուլը աջակցում է երկու grant տիպ՝ որոնց միջոցով կարող եք մուտքի թոքեն ստանալ․

Password Grant․

  • Password grant տարբերակում մուտքի թոքենը ստանում ենք՝ POST հարցում ուղարկելով օգտվողի անունը և գաղտնաբառը՝ REST API Authentication մոդուլից ստացված Client ID-ով։

    Հարցում․ POST <drupal_base_url>/rest_api/access_token                   

    Մարմին․

    grant_type = password

    username = <drupal_username>

    password = <drupal_password>

    client_id = <client_id>

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

    curl --location --request POST '<your_drupal_base_url>/rest_api/access_token' \

     --header 'Accept: application/json' \

     --header 'Content-Type: application/x-www-form-urlencoded' \

    --data-urlencode 'grant_type=password' \

     --data-urlencode 'client_id= <drupal_client_id>' \

     --data-urlencode 'username=<drupal_username >\

    --data-urlencode 'password=<drupal_password>'

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

    Postman

Client Credentials grant․

  • Client Credentials տարբերակում մուտքի թոքենը ստանում ենք՝ POST հարցում ուղարկելով Client ID-ն և Client Secret-ը, ինչպես նաև օգտվողի անունը։

    Հարցում․ POST <drupal_base_url>/rest_api/access_token

    Մարմին․

    grant_type = client_credentials

    client_id = <client_id>

    client_secret = <client_secret>

    Username = <drupal_username>

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

    curl --location --request POST '<drupal_base_url>/rest_api/access_token' \

    --header 'Accept: application/json' \

    --header 'Content-Type: application/x-www-form-urlencoded' \

    --data-urlencode 'grant_type=client_credentials' \

    --data-urlencode 'client_id=<Client_ID>' \

    --data-urlencode 'username=<drupal_username>' \

    --data-urlencode 'client_secret=<Client_secret>'

  • Կարող եք օգտվել նաև Postman-ի հարցման պատկերից՝ մուտքի թոքեն ստանալու համար Client Credentials grant-ով։

    api response

  • Հաջող պատասխանը վերադարձնում է Access Token, ինչպես նաև թոքենի վավերականության ժամկետն ու տեսակը (տես նկարում)։

REST API

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

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

Այս սխալը կստանաք, եթե օգտվողի անունը կամ գաղտնաբառը սխալ է։

Օրինակ:
{
  "status": "error",
  "error":  "INVALID_CREDENTIALS",
  "error_description": "Invalid username or password."
}

INVALID_CLIENT_ID

Այս սխալը կստանաք, եթե տրամադրած Client ID-ն սխալ է։

Օրինակ:
{
  "status": "error",
  "error": "INVALID_CLIENT_ID",
  "error_description": "Invalid Client ID."
}

INVALID_CLIENT_SECRET

Այս սխալը կստանաք, եթե տրամադրած Client Secret-ը սխալ է։

Օրինակ:
{
  "status": "error",
  "error": "INVALID_CLIENT_ID",
  "error_description": "Invalid Client Secret."
}

MISSING_USERNAME

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

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

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