본문 바로가기
  • 환영 합니다 ! Welcome!
VBA For Windchill

Windchill & VBA 01) 서비스에서 NONCE 토큰 가져오기

by ToolBOX01 2024. 6. 25.
반응형

NONCE Token 이란?

난스(nonce)는 SOAP 메시지에서 사용되는 사용자 이름 토큰의 도난을 방지하기 위해 사용되는 랜덤하게 생성되는 암호화 토큰입니다. Nonce는 기본 인증 (BasicAuth) 메소드와 함께 사용됩니다.

 

Option Explicit
Sub CSRFToken01()
    
    '// MSXML2 XMLHTTP 객체를 만듭니다.
        Dim xmlHttp As Object
        Set xmlHttp = CreateObject("MSXML2.XMLHTTP")

    '// 요청 메서드를 GET으로 설정합니다.
    xmlHttp.Open "GET", "http://plm.*****.com/Windchill/servlet/odata/PTC/GetCSRFToken()", False

    '// 요청 헤더를 설정합니다.
    xmlHttp.SetRequestHeader "Content-Type", "application/json"
    xmlHttp.SetRequestHeader "Accept", "application/json"

    '// 요청을 보냅니다.
    xmlHttp.Send

        '// 응답 상태를 확인합니다.
        If xmlHttp.Status = 200 Then
            '// 응답 JSON을 가져옵니다.
            Dim responseJson As String
            responseJson = xmlHttp.ResponseText
            
            '// JSON을 파싱합니다. (JsonConverter가 필요합니다)
            Dim jsonData As Object
            Set jsonData = JsonConverter.ParseJson(responseJson)
            
            '// CSRF 토큰을 가져옵니다.
            Dim csrfToken As String
            csrfToken = jsonData("NonceValue")
            
            ' //CSRF 토큰을 사용합니다.
            MsgBox "CSRF Token: " & csrfToken
            
            Debug.Print jsonData("NonceKey")
            Debug.Print jsonData("NonceValue")
            
        Else
            ' //오류 처리
            MsgBox "Error: " & xmlHttp.Status
        End If

End Sub

 

예제 결과) JSON으로 가져온 토큰 값

{
 "@odata.context": "https://windchill.ptc.com/Windchill/servlet/odata/v3/PTC/$metadata#CSRFToken",
 "NonceKey": "CSRF_NONCE",
 "NonceValue": "8q87WtSxvWkSH9FMtsQUboOI5TtCS7gWh8RUb4OG ="
}

이 요청에서 반환된 CSRF_NONCE 값은 엔터티를 생성(POST 요청), 수정(PUT 및 PATCH 요청) 또는 삭제(DELETE 요청)하기 위해 이 사용자 가이드에 제공된 모든 예제에서 요청 헤더로 전달되어야 합니다.

▷ ▷ JSON  파일 사용 방법

https://m.blog.naver.com/davethe/222220993751

 

[엑셀 크롤링] JSON 데이터 다루기 (기본 셋업)

안녕하세요. 하날리야입니다. 오늘은 크롤링을 하면서 웹 상에서 자주 등장하는 데이터 형태인 'JS...

blog.naver.com


 

'VBA For Windchill' 카테고리의 다른 글

DOM (Document Object Model) 이란?  (0) 2024.06.30
VBA Web Parsing 1/2  (0) 2024.06.30
json 파일 읽기  (0) 2024.06.26
학습 02) Open API, 엑셀 VBA  (0) 2024.06.22
학습 01) Open API, 엑셀 VBA  (0) 2024.06.21