매니저가 브라우저에서 조인성공에 직접 로그인하고, 프로그램은 토큰만 받습니다. 프로그램은 매니저의 비밀번호를 보지 않습니다.클라이언트 시크릿 없이 PKCE로 보호하는 방식(public client)입니다. 설치형 프로그램은 시크릿을 안전하게 숨길 수 없기 때문에, 웹 서비스도 같은 방식으로 맞췄습니다. RFC 8252(네이티브 앱 OAuth)의 루프백 방식을 따릅니다.
클라이언트 정보
이 밖의 매니저 API(통계 등)를 호출하면
403 forbidden을 돌려줍니다.
로그인 흐름
1. PKCE 값 만들기
2. 브라우저로 동의 화면 열기
프로그램 안의 웹뷰가 아니라 매니저의 기본 브라우저로 엽니다. 이미 조인성공에 로그인해 둔 브라우저라면 로그인 단계 없이 동의 화면이 바로 나옵니다.
동의 화면에는 연결하려는 프로그램 이름과 요청 권한이 표시됩니다. 승인된 매니저가 아니거나 플랜을 이용 중이 아니면, 허용 버튼 대신 이용할 수 없다는 안내가 나옵니다.
3. 돌아온 주소 받기
4. 토큰 받기
5. API 호출
토큰 갱신
access token이 만료되기 전이나 API가403을 돌려줬을 때 refresh token으로 새 토큰을 받습니다.
400 invalid_grant로 실패하면 refresh token이 만료됐거나, 연결이 해제됐거나, 이미 쓴 값입니다. 다시 로그인 흐름을 시작하세요.
연결 해제
프로그램에서 해제
프로그램의 「연결 해제」나 로그아웃에서 호출합니다. refresh token을 보내면 짝이 되는 access token도 함께 무효가 됩니다.조인성공에서 해제
매니저는 조인성공 콘솔 티 관리 화면의 「연결된 외부 프로그램」에서 프로그램별로 연결을 끊을 수 있습니다. 끊으면 그 프로그램이 그 매니저 계정으로 받은 토큰이 모두 무효가 되고, 다음 API 호출부터403, 다음 갱신부터 400 invalid_grant를 받습니다.
토큰 보관
- 설치형 프로그램은 토큰을 매니저 PC에 암호화해서 저장하세요. Windows는 DPAPI, macOS는 키체인을 권합니다.
- 웹 서비스는 토큰을 서버에만 두고 암호화해서 저장하세요. 브라우저(로컬 스토리지, 쿠키)로 내려보내지 마세요.
- 로그, 오류 보고, 화면에 토큰 전체를 남기지 마세요. 확인이 필요하면 앞 몇 자리만 쓰세요.
- 토큰은 그 매니저 한 명의 권한입니다. 다른 매니저 계정의 작업에 쓰지 마세요.
오류
전체 목록은 에러 코드를 참고하세요.