JWT 인증 자동화를 위한 Postman 프리리퀘스트 설정 방법
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- REST/GraphQL API 개발자 및 테스트 엔지니어
- Postman을 사용하는 인증 프로세스 자동화 필요자
- 중간 수준 이상의 API 테스트 경험자
핵심 요약
- Bearer Token 자동화
pm.collectionVariables.set("bearerToken", ...)
를 활용한 자동 인증 토큰 저장- GraphQL/REST 요청 자동화
pm.sendRequest
로 로그인 요청 처리 및 토큰 추출- 에러 처리 강화
response.errors
및response.data.userSignIn.error
검증으로 안정성 확보
섹션별 세부 요약
1. 변수 생성 및 설정
- Postman 컬렉션의 Variables 섹션에서
bearerToken
변수 생성 pm.collectionVariables.set()
을 통해 토큰 저장- 환경별 변수(
pm.environment.set()
) 사용 권장
2. GraphQL 인증 요청 설정
- Query 구성
```graphql
mutation UserSignIn($email: String!, $password: String!) {
userSignIn(input: {email: $email, password: $password}) {
token
error {
field
message
}
}
}
```
- JavaScript 스크립트
```javascript
pm.sendRequest({
url: 'https://api.example.com/auth',
method: 'POST',
header: {'Content-Type': 'application/json'},
body: {
mode: 'raw',
raw: JSON.stringify(graphqlMutation)
}
}, (err, res) => {
if (res.json().data.userSignIn.token) {
pm.collectionVariables.set("bearerToken", res.json().data.userSignIn.token);
}
});
```
3. REST 인증 요청 설정
- Payload 구성
```json
{
"login": "seu_login",
"password": "sua_senha"
}
```
- JavaScript 스크립트
```javascript
pm.sendRequest({
url: 'https://api.example.com/login',
method: 'POST',
header: {'Content-Type': 'application/json'},
body: {
mode: 'raw',
raw: JSON.stringify(payload)
}
}, (err, res) => {
pm.environment.set("bearerToken", res.json().access_token);
});
```
4. 디버깅 및 트러블슈팅
- 콘솔 로그 확인
Ctrl+Alt+C
로 Postman 개발자 도구 열기console.error()
로 에러 출력- 참고 자료
- Postman 공식 문서, 커뮤니티 포스트, 개발자 프로필 링크
결론
- 권장사항
pm.collectionVariables
대신pm.environment.set()
사용 시 환경별 인증 관리 용이try-catch
구문 추가로 예외 처리 강화response.data
대신res.json()
활용해 데이터 구조 안정성 확보- 자동화 스크립트는 테스트 환경에서 먼저 검증 후 사용 권장