For AI

AI에게 이 링크를 넘기세요

AI 코딩 도구가 SSAFY Verify를 잘못 구현하지 않도록, Markdown 전체 문서와 구현 지시문을 제공합니다.

가장 짧은 전달 방식

AI에게 넘길 링크

https://verify.myknow.xyz/llms-full.txt

Canonical issuer: https://verify.myknow.xyz

환경변수, callback iss, JWTiss 검증값은https://verify.myknow.xyz만 사용합니다.

플랫폼별 문서

AI에게 대상 플랫폼을 알려주면 공식 지원 문서를 우선 적용하게 하세요. Swift/Kotlin/Flutter는 SDK가 아니라 deep link 참고 메모입니다.

AI에게 전달할 프롬프트

prompt.txt코딩 에이전트 지시문
SSAFY Verify를 외부 앱에 붙여줘.
먼저 https://verify.myknow.xyz/llms-full.txt 를 읽고, Verify API Quickstart를 그대로 따른다.
canonical issuer와 API/docs base URL은 https://verify.myknow.xyz 이다.
대상 플랫폼이 모바일이면 /docs/platforms/mobile을 우선 적용하고, Swift/Kotlin/Flutter 페이지는 deep link 설정 메모로만 참고한다.
모든 플랫폼의 서버 교환은 /docs/platforms/backend 계약을 따른다.
v1 공식 범위는 Verify API 본인인증이다. OIDC 로그인 연동은 v2 예정이므로 신규 public 연동에 사용하지 않는다.
React/Vue는 Hosted SDK popup, 모바일은 시스템 브라우저와 deep link callback을 사용한다.
embedded WebView 인증은 Unsupported / Do not use로 처리한다.
client secret은 서버 환경변수에만 저장하고 브라우저 코드에는 절대 넣지 않는다.
기존 Mattermost 인증 프로젝트의 계정 매핑이 필요한 경우에만 ssafy.mattermost_id scope를 요청한다.
ssafy.mattermost_id가 없으면 ssafy_mattermost_user_id claim은 없어야 정상이다.
Mattermost raw user.id는 안정 식별자이고 username은 변경 가능한 보조 표시값으로 취급한다.
Verify token exchange의 grant_type은 verification_code다.
callback의 state와 verification_token의 iss, aud, exp, sub, client_id, verified, auth_time, amr, acr를 검증한다.
callback의 iss가 https://verify.myknow.xyz 이 아니면 token exchange를 시작하지 않는다.
public 실패 화면에는 안전한 message, error_code, request_id만 표시한다.

AI가 반드시 지켜야 하는 규칙

  • 처음 적용은 Verify API를 사용합니다.
  • Hosted SDK는 브라우저에서 popup과 PKCE 생성을 돕는 용도로만 사용합니다.
  • /verify/token 교환과 JWT 검증은 외부 앱 서버에서 수행합니다.
  • 서버는 code, codeVerifier, redirectUri, iss를 schema로 검증한 뒤 /verify/token을 호출합니다.
  • client secret, token, code는 URL, 브라우저 저장소, 로그에 남기지 않습니다.
  • 에러 응답은 error_code와 request_id 중심으로 처리합니다.

읽을 문서 순서