Checkable 서비스에서 구현한 OAuth 2.0 인증 방법
https://checkable.app
client_id
: 고유한 클라이언트 식별자client_secret
: Confidential Client만 (Public Client는 사용하지 않음)redirect_uris
: 허용된 리디렉션 URI 목록scopes
: 요청할 권한 범위client_type
: public
또는 confidential
all
: 모든 권한 (기본값)code_challenge
라는 변환된 값이 승인 서버로 전송되어 승인 코드를 가져옵니다.
code_verifier
는 예약되지 않은 문자 [A-Z] / [a-z] / [0-9] / '-' / '.' / '_' / '~'
을 사용하는 엔트로피가 높은 암호화 랜덤 문자열로, 최소 길이는 43자, 최대 길이는 128자입니다.
https://checkable.app/api/oauth/authorize
의 Checkable 승인 서버에 요청을 전송합니다.
매개변수 | 필수 | 설명 |
---|---|---|
client_id | 필수 | 애플리케이션의 클라이언트 ID |
redirect_uri | 필수 | 승인 서버가 앱에 응답을 전송하는 방법을 결정 |
response_type | 필수 | code 로 설정 |
scope | 필수 | 공백으로 구분된 범위 목록 (예: all ) |
code_challenge | 권장 | PKCE 코드 챌린지 |
code_challenge_method | 권장 | S256 또는 plain |
state | 권장 | CSRF 방지를 위한 임의의 문자열 |
YOUR_CLIENT_ID
: 발급받은 클라이언트 IDYOUR_REDIRECT_URI
: 등록된 리디렉션 URIYOUR_STATE_VALUE
: CSRF 방지를 위한 임의의 문자열YOUR_CODE_CHALLENGE
: PKCE 코드 챌린지 (S256 방식)https://checkable.app/api/auth/member/oauth2/token
엔드포인트를 호출합니다.
client_secret
이 필요하지 않습니다.
client_secret
을 사용하여 인증합니다.
client_secret
없이도 토큰 갱신이 가능할 수 있습니다. 클라이언트 타입에 따라 서버에서 자동으로 처리됩니다.
Member not found
오류가 발생할 수 있습니다.
200 OK
: 요청 성공400 Bad Request
: 잘못된 요청 (필수 매개변수 누락 등)401 Unauthorized
: 인증 실패 (토큰 만료, 잘못된 토큰 등)403 Forbidden
: 권한 없음404 Not Found
: 리소스를 찾을 수 없음500 Internal Server Error
: 서버 오류오류 메시지 | 설명 | 해결 방법 |
---|---|---|
The authorization code is invalid or has expired. | 인증 코드가 잘못되었거나 만료됨 | 새로운 인증 코드 요청 |
The redirect URI does not match the registered URI. | 리디렉션 URI가 등록된 URI와 일치하지 않음 | 올바른 redirect_uri 사용 |
The PKCE code verifier is invalid. Please check your code_verifier parameter. | PKCE 코드 검증기가 잘못됨 | 올바른 code_verifier 사용 |
The client ID is invalid. | 클라이언트 ID가 잘못됨 | 올바른 client_id 사용 |
The client secret is invalid. | 클라이언트 시크릿이 잘못됨 | 올바른 client_secret 사용 |
The refresh token is invalid or has expired. | 갱신 토큰이 잘못되었거나 만료됨 | 새로운 인증 코드 요청 |
Refresh token is required. | 갱신 토큰이 필요함 | refresh_token 매개변수 포함 |
Unsupported grant type. | 지원하지 않는 grant_type | 올바른 grant_type 사용 |
Unsupported client type. | 지원하지 않는 클라이언트 타입 | 클라이언트 타입 확인 |
state
매개변수를 사용하여 CSRF 공격을 방지하세요yourapp://callback
)https://your-domain.com/callback
)