□ NONCE Token 이란?
난스(nonce)는 SOAP 메시지에서 사용되는 사용자 이름 토큰의 도난을 방지하기 위해 사용되는 랜덤하게 생성되는 암호화 토큰입니다. A nonce is a randomly generated cryptographic token used to prevent theft of username tokens used in SOAP messages.
Nonce는 기본 인증 (BasicAuth) 메소드와 함께 사용됩니다.
Nonce is used with the BasicAuth method.
Windchill Rest API를 사용 하려면, 로그인을 해야 합니다. 토큰을 발생 받아 자격증명을 합니다
To use Windchill Rest API, you need to log in. Get a token and provide your credentials.
□ 토큰 요청 코드 (Token Request Code)
재사용 가능 한 모듈 만들기
Creating reusable modules
Option Explicit
Sub CSRFToken01()
'// MSXML2 XMLHTTP 객체를 만듭니다. (Creates an MSXML2 XMLHTTP object)
Dim xmlHttp As Object
Set xmlHttp = CreateObject("MSXML2.XMLHTTP")
'// 요청 메서드를 GET으로 설정합니다. (Set the request method to GET.)
xmlHttp.Open "GET", "http://plm.*****.com/Windchill/servlet/odata/PTC/GetCSRFToken()", False
'// 요청 헤더를 설정합니다.(Sets the request headers.)
xmlHttp.SetRequestHeader "Content-Type", "application/json"
xmlHttp.SetRequestHeader "Accept", "application/json"
'// 요청을 보냅니다.(Send your request.)
xmlHttp.Send
'// 응답 상태를 확인합니다.(Check the response status.)
If xmlHttp.Status = 200 Then
'// 응답 JSON을 가져옵니다. (Get the response JSON.)
Dim responseJson As String
responseJson = xmlHttp.ResponseText
'// JSON을 파싱합니다. (Parse JSON)
Dim jsonData As Object
Set jsonData = JsonConverter.ParseJson(responseJson)
'// CSRF 토큰을 가져옵니다.(Get the CSRF token.)
Dim csrfToken As String
csrfToken = jsonData("NonceValue")
' //CSRF 토큰을 사용합니다.(Use CSRF tokens.)
MsgBox "CSRF Token: " & csrfToken
Debug.Print jsonData("NonceKey")
Debug.Print jsonData("NonceValue")
Else
' //오류 처리 (Error Handling)
MsgBox "Error: " & xmlHttp.Status
End If
End Sub
주의 - caution)
"plm.*****.com"은 사용 하는 PLM 주소 입니다
"plm.*****.com" is the PLM address you are using
예제 결과) JSON으로 가져온 토큰 값
Token value retrieved as 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 요청)하기 위해 이 사용자 가이드에 제공된 모든 예제에서 요청 헤더로 전달되어야 합니다.
The CSRF_NONCE value returned in this request must be passed as a request header in all examples provided in this user guide for creating (POST requests), modifying (PUT and PATCH requests), or deleting (DELETE requests) entities.
▷ ▷ JSON 파일 사용 방법
'VBA For Windchill' 카테고리의 다른 글
json 파일 읽기 (0) | 2024.06.26 |
---|---|
Windchill & VBA 02) Creating a WTPart (부품) (0) | 2024.06.26 |
학습 02) Open API, 엑셀 VBA (0) | 2024.06.22 |
학습 01) Open API, 엑셀 VBA (0) | 2024.06.21 |
WC와 엑셀 VBA 연결 (EXCEL VBA 에서 Http Request) 환경설정 (0) | 2024.06.20 |