# 인증

## OAuth SSO 로그인

> Client Credentials로 SSO 로그인을 합니다.

```json
{"openapi":"3.1.0","info":{"title":"Open API","version":"snapshot"},"tags":[{"name":"인증"}],"servers":[{"url":"https://openapi.archisketch.com"}],"security":[],"paths":{"/api/v1/oauth/login":{"post":{"tags":["인증"],"summary":"OAuth SSO 로그인","description":"Client Credentials로 SSO 로그인을 합니다.","operationId":"ssoLogin","requestBody":{"description":"SSO 로그인 요청","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}},"required":true},"responses":{"200":{"description":"모든 응답은 200으로 내려갑니다 (성공 실패 포함) (장애상황에서만 5xx 노출)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiResponseOAuthResponse"}}}}}}}},"components":{"schemas":{"LoginRequest":{"type":"object","properties":{"accessKey":{"type":"string","description":"발급받은 accessKey"},"verifyToken":{"type":"string","description":"파트너사 인증 token"}}},"ApiResponseOAuthResponse":{"type":"object","properties":{"result":{"type":"string","description":"응답 결과 타입","enum":["SUCCESS","FAIL"]},"data":{"$ref":"#/components/schemas/OAuthResponse","description":"응답 데이터"},"error":{"$ref":"#/components/schemas/ErrorMessage","description":"에러 응답, result FAIL 시 제공"}},"required":["result"]},"OAuthResponse":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/OAuthUserResponse","description":"OAuth 사용자 정보"},"token":{"$ref":"#/components/schemas/OAuthTokenResponse","description":"OAuth 토큰"}},"required":["token","user"]},"OAuthUserResponse":{"type":"object","properties":{"id":{"type":"string","description":"사용자 ID"},"origin":{"type":"string","description":"파트너사 영어 이름"},"uid":{"type":"string","description":"파트너사 사용자 ID"},"name":{"type":"string","description":"사용자 이름"},"imageUrl":{"type":"string","description":"프로필 이미지 URL"},"email":{"type":"string","description":"이메일"},"role":{"type":"string","description":"역할 (USER: 일반 사용자, DESIGNER: 디자이너, MANAGER: 매니저, ADMIN: 관리자)","enum":["USER","DESIGNER","MANAGER","ADMIN"]},"categoryId":{"type":"string","description":"카테고리 ID"},"createdAt":{"type":"string","format":"date-time","description":"생성일시"},"updatedAt":{"type":"string","format":"date-time","description":"수정일시"}},"required":["createdAt","email","id","origin","role","uid","updatedAt"]},"OAuthTokenResponse":{"type":"object","properties":{"access":{"type":"string","description":"액세스 토큰"},"refresh":{"type":"string","description":"리프레시 토큰"}},"required":["access","refresh"]},"ErrorMessage":{"type":"object","properties":{"errorCode":{"type":"string","description":"에러 코드","enum":["INTERNAL_ERROR","BAD_REQUEST","NOT_FOUND","CONFLICT","FORBIDDEN"]},"message":{"type":"string","description":"에러 메시지"}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.archisketch.com/dev/api-3/undefined.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
