For AI

AI에게 이 링크를 넘기세요

AI 코딩 도구가 SSAFY Verify를 단일 인증 기능으로 축소해 구현하지 않도록, User Auth와 Server API 전체 문서와 구현 지시문을 제공합니다.

가장 짧은 전달 방식

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 를 읽고, User Auth와 Server API 중 필요한 문서를 선택한다.
canonical issuer와 API/docs base URL은 https://verify.myknow.xyz 이다.
대상 플랫폼이 모바일이면 /docs/platforms/mobile을 우선 적용하고, Swift/Kotlin/Flutter 페이지는 deep link 설정 메모로만 참고한다.
모든 플랫폼의 서버 교환은 /docs/platforms/backend 계약을 따른다.
사용자 구성원 인증은 Verify API 문서를 따른다.
서버 간 profile 조회, directory lookup, Mattermost DM 위임은 /docs/server-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만 표시한다.
Server API notification은 승인된 template/purpose만 사용하고 raw free-form message는 보내지 않는다.
Notification template variables는 SSAFY profile claim이 아니라 템플릿별 파트너 선언 allowlist다.
Server API notification 호출 시 template.variables에는 승인된 variable key의 string 값만 넣고 새 key를 선언하지 않는다.

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

  • User Auth가 필요하면 Verify API를 사용합니다.
  • 서버 간 profile, directory, Mattermost notification 위임은 Server API를 사용합니다.
  • Hosted SDK는 브라우저에서 popup과 PKCE 생성을 돕는 용도로만 사용합니다.
  • /verify/token 교환과 JWT 검증은 외부 앱 서버에서 수행합니다.
  • 서버는 code, codeVerifier, redirectUri, iss를 schema로 검증한 뒤 /verify/token을 호출합니다.
  • client secret, token, code는 URL, 브라우저 저장소, 로그에 남기지 않습니다.
  • 에러 응답은 error_code와 request_id 중심으로 처리합니다.
  • Server API 알림은 승인된 template/purpose 기반으로만 발송합니다.
  • Notification variable은 템플릿별 allowed_variables 값이며 profile claim으로 자동 주입되지 않습니다.
  • template.variables에는 승인된 key의 string 값만 넣고, 호출 시 새 variable key를 만들지 않습니다.

읽을 문서 순서