동적 전달자 토큰과 함께 Postman을 올바른 방법으로 사용

도전



이 기사는 Magento에 초점을 맞추지만 인증을 위해 전달자 토큰을 사용하는 모든 API에 적용할 수 있습니다.

Magento의 API는 인증을 위해 만료되는 전달자 토큰을 사용합니다. 즉, API를 계속 사용하려면 정기적으로 새 전달자 토큰을 가져와야 합니다.

이것은 훌륭한 보안 기능이지만 로컬에서 API를 디버깅할 때 복잡성을 더합니다.

API를 적절하고 방해받지 않고 디버그할 수 있도록 Postman 요청 내에서 전달자 토큰을 동적으로 검색하는 가장 좋은 방법을 보여드리겠습니다.

Magento의 API 인증은 세 단계로 정의할 수 있습니다.
  • 관리자 로그인 세부 정보를 사용하여 전달자 토큰 가져오기
  • 전달자 토큰을 사용하여 다른 모든 보호된 API 호출에 액세스
  • 필요에 따라 전달자 토큰을 새로 고칩니다.

  • Magento 관리 사용자 만들기



    따라서 이 나머지 API의 경우 표준 마젠토 2 관리자 계정을 사용합니다. 따라서 관리자 계정을 만들고 필요한 리소스에 액세스하는 데 필요한 역할을 부여합니다.

    제 경우에는 데모 사용자를 만들었습니다.

    demo
    SomeUniquePasswordFrogApple12
    

    단순성을 위해 전체 관리자 역할을 할당했습니다. 실제 예에서는 API 계정에 필요한 최소한의 액세스 권한을 부여해야 합니다.

    Magento2라는 새 환경 만들기



    Postman 내부에서 새로운 환경을 만들어야 합니다. 여기에서 매장별 변수를 모두 구성합니다.

    | Variable         | Value                         |
    | magento_token    |                               |
    | magento_url      | https://your-store-url.com    |
    | magento_username | demo                          |
    | magento_password | SomeUniquePasswordFrogApple12 |
    


    이제 이러한 변수를 사용할 수 있도록 "저장"을 클릭해야 합니다.



    우편 배달부 요청 만들기



    Magento2라는 새 컬렉션을 만듭니다. 이것은 우리의 마젠토 요청을 구성하기 위한 것입니다.

    이 컬렉션 내에서 "제품 나열"이라는 첫 번째 API 요청을 생성할 수 있습니다.

    URL을 사용하여 GET 요청을 생성합니다.

    {{magento_url}}/rest/all/V1/products
    


    이전에 구성한 magento_url 환경 변수를 사용합니다.

    요청에 환경 추가



    새로 생성된 변수에 액세스할 수 있도록 이 요청에 Magento2 환경을 추가해야 합니다.



    쿼리 매개변수 추가



    목록 제품 API 호출을 사용하고 있으므로 필수 searchCriteria 필드를 추가해야 합니다.

    매개변수 아래에 다음을 추가합니다.

    | Variable                    | Value |
    | searchCriteria[pageSize]    | 10    |
    | searchCriteria[currentPage] | 1     |
    




    전달자 토큰 승인 설정



    Authorization에서 유형을 Bearer Token으로 설정합니다.

    그런 다음 토큰 값을 다음과 같이 설정합니다.

    {{magento_token}}
    


    전달자 토큰은 시간이 지남에 따라 변경되기 때문에 여기서는 magento_token 환경 변수를 사용합니다. 다음 섹션에서 이를 구성할 것입니다.

    설정은 다음과 같아야 합니다.



    동적 전달자 토큰 구성



    이제 이것이 마법이 일어나는 곳입니다. API에 대한 모든 요청 전에 항상 작동하도록 Magento에서 새로운 전달자 토큰을 가져옵니다.

    List Products api 요청 내에서 각 요청 전에 실행될 "사전 요청 스크립트"를 추가할 수 있습니다.

    function getQueryString (obj) {
        return Object.keys(obj).map((key) => `${key}=${obj[key]}`).join('&');
    }
    
    const qs = {
        'username': postman.getEnvironmentVariable("magento_username"),
        'password': postman.getEnvironmentVariable("magento_password")
    };
    
    pm.sendRequest({
        url: postman.getEnvironmentVariable("magento_url") + '/rest/all/V1/integration/admin/token?' + getQueryString(qs),
        method: 'POST',
        header: {
            'content-type': 'application/json',
        },
    }, function (err, res) {
        var magento_token = res.json();
        postman.setEnvironmentVariable("magento_token", magento_token);
    });
    


    스크립트를 읽으면 이전에 구성한 magento 사용자 이름 및 암호 env 변수를 사용한 다음 Magento API의 토큰 끝점을 쿼리하고 전달자 토큰을 검색하여 magento_token으로 저장한다는 것을 알 수 있습니다.

    Postman 구성은 다음과 같아야 합니다.



    요청 보내기



    그리고 그게 다야! 이제 "보내기"를 클릭할 수 있으며 스토어의 처음 10개 제품을 포함하는 json 응답을 검색해야 합니다.

    {
        "items": [
            {
                "id": 1,
                "sku": "24-MB01",
                "name": "Joust Duffle Bag",
                "attribute_set_id": 15,
                "price": 34,
                ...
            },
            ...
        ],
        "search_criteria": {
            "filter_groups": [],
            "page_size": 10,
            "current_page": 1
        },
        "total_count": 2046
    }
    




    마무리 생각



    이는 설정이 빠르고 API에서 베어러 토큰을 사용하는 다른 플랫폼에 빠르게 적응할 수 있습니다.

    나와 같이 매일 여러 Magento 매장에서 작업하는 경우 우편 배달부에서 이러한 방식으로 여러 환경을 구성하고 원활하게 전환할 수 있습니다.

    좋은 웹페이지 즐겨찾기