개요
Logto는 OIDC 및 OAuth 2.1 기반의 모던 오픈소스 아이덴티티 인증 솔루션으로, 멀티 테넌시, 엔터프라이즈 SSO, RBAC 및 커스터마이징 가능한 로그인 플로우를 지원하며, SaaS, AI 및 에이전트 플랫폼을 위해 설계되었습니다.
README 미리보기
\n \n \n \n \n \n \n \n\n\n[](https://discord.gg/vRvwuwgpVX)\n[](https://github.com/logto-io/logto/actions?query=branch%3Amaster)\n[](https://github.com/logto-io/logto/releases)\n[](https://app.codecov.io/gh/logto-io/logto)\n[](https://cloud.logto.io/?sign_up=true&utm_source=github&utm_medium=repo_logto)\n[](https://gitpod.io/#https://github.com/logto-io/demo)\n[](https://render.com/deploy?repo=https://github.com/logto-io/logto)\n\n# Logto\n\n**Logto is the modern, open-source auth infrastructure for SaaS and AI apps.**\n\nIt takes the pain out of OIDC and OAuth 2.1 and makes it easy to build secure, production-ready auth with multi-tenancy, enterprise SSO, and RBAC.\n\n\n website •\n cloud •\n docs •\n api •\n blog •\n auth wiki •\n newsletter\n\n\n\n\n## Why Logto?\n\nBuilt for teams scaling SaaS, AI, and agent-based platforms without the usual auth headaches.\n\nWith Logto, you get:\n\n- **Multi-tenancy, enterprise SSO, and RBAC**: ready to use, no workarounds.\n- **Pre-built sign-in flows**, customizable UIs, and SDKs for 30+ frameworks.\n- **Full support for OIDC, OAuth 2.1, and SAML** without the protocol pain.\n- **Works out-of-the-box for Model Context Protocol and agent-based AI architectures**.\n\n[🗺️ See all features →](https://docs.logto.io/?ref=readme)\n\n## Get started\n\nPick your path:\n\n- [**Logto Cloud**](https://cloud.logto.io/?sign_up=true&ref=readme): The fastest way to try Logto. Fully managed, zero setup.\n- [**Launch Logto in GitPod**](https://gitpod.io/#https://github.com/logto-io/demo): Start Logto OSS in seconds.\n\n Wait for the message `App is running at https://3002-...gitpod.io`, then click the URL starting with `https://3002-` to continue.\n\n- **Local development:** \n\n ```bash\n # Using Docker Compose(requires Docker Desktop)\n curl -fsSL https://raw.githubusercontent.com/logto-io/logto/HEAD/docker-compose.yml | \\n docker compose -p logto -f - up\n \n # Using Node.js (requires PostgreSQL)\n
FAQ (5)
문제 해결Logto Next.js App Router Home 컴포넌트에서 TS1308 "await isn't allowed in non-async function" 오류를 수정하는 방법
await getLogtoContext()를 사용하므로 Home 컴포넌트를 async로 표시하세요:
const Home = async () => {
const { isAuthenticated, claims } = await getLogtoContext(logtoConfig);
// ...
};
export default Home;
그런 다음 npm run build를 다시 실행하세요. Logto Console 가이드의 잘못된 non-async 예제는 PR #9692에서 수정되었습니다. 가이드에 여전히 const Home = () => {가 표시된다면 Logto를 업데이트하세요.
문제 해결Cloudflare Zero Trust MCP Server Portal을 통해 Logto MCP를 연결할 때 발생하는 redirect_uri 400 오류는 어떻게 해결하나요?
Logto Cloud에서 이제 OAuth Client ID Metadata Documents를 지원합니다. Cloudflare MCP 게이트웨이를 다음과 같이 구성하세요:
1. 공개 HTTPS URL(예: https://example.com/logto-mcp-client.json)에 클라이언트 메타데이터 JSON 파일을 호스팅하세요:
{
"client_name": "Cloudflare MCP Gateway",
"redirect_uris": [
"https://oauth-callbacks.cloudflareaccess.com/cdn-cgi/access/outbound-oauth-callback"
],
"grant_types": ["authorization_code", "refresh_token"],
"response_types": ["code"],
"scope": "openid",
"token_endpoint_auth_method": "none"
}
2. Cloudflare MCP Server Portal OAuth 구성에서 클라이언트 ID를 해당 메타데이터 문서의 전체 URL로 설정하세요.
3. https://mcp.logto.io에 다시 연결하세요. Logto가 문서를 가져와 redirect_uris에 나열된 게이트웨이 콜백을 허용합니다.
다음 명령으로 지원 여부를 확인하세요:
curl https://auth.logto.io/oidc/.well-known/openid-configuration
메타데이터에 "client_id_metadata_document_supported": true가 포함되어 있어야 합니다. Cloudflare에는 기본 제공 mcp-client ID를 사용하지 마세요. 이 ID는 localhost 리디렉션 URI로 제한되어 있습니다.
문제 해결Logto에서 소셜 회원가입 중 'Bind and continue'를 클릭한 후 발생하는 'session.identifier_not_found' 오류는 어떻게 해결하나요?
이 문제는 Logto PR #9593에서 수정되었습니다. 해당 수정 사항이 포함된 릴리스로 업그레이드하세요. 이 버그는 packages experience/src/containers/VerificationCode/use-continue-flow-code-verification.ts에서 발생합니다: link_social 분기가 isVerificationCodeEnabledForSignIn(type)을 먼저 호출하지 않고 계정 연결을 제공합니다. 패치된 코드는 식별자가 인증 코드로 로그인할 수 있는 경우에만 연결 모달을 표시하며, 그렇지 않은 경우에는 일반적인 "identifier already exists" 메시지를 표시하고 사용자를 되돌려 보내 변경하도록 합니다. Logto 1.42.0에서 임시 해결 방법으로는 충돌하는 전화번호 보조 식별자 요구 사항을 제거하거나 전화번호 인증 코드 로그인을 활성화하세요. PhoneVerificationCode가 MFA 요소로 구성되어 있는 동안에는 전화번호 인증 코드 로그인을 활성화할 수 없으므로, 먼저 MFA에서 제거해야 합니다.
how_to내 애플리케이션에서 Logto 로그인 페이지가 라이트 모드 또는 다크 모드를 사용하도록 강제하려면 어떻게 해야 하나요?
Logto 로그인 플로우를 시작할 때 light 또는 dark 값과 함께 theme 인증 파라미터를 전달하세요(예: extraParams: { theme: 'dark' }). 또는 OIDC 인가 URL에 theme=dark를 추가하세요. Logto에서 다크 모드가 활성화된 경우 이 파라미터는 기본/OS 테마를 재정의하며, 다크 모드가 비활성화된 경우 이 파라미터는 무시됩니다. 이 지원은 PR #9645에서 추가되었습니다.
문제 해결Logto가 sign-up allowlist에 없는 이메일로 인증 코드를 보내지 않도록 하려면 어떻게 해야 하나요?
이는 Logto의 통합 로그인/등록 폼에서 발생합니다. 코드가 인증되기 전에는 Logto가 해당 이메일이 기존 로그인 계정에 속하는지 새로운 등록에 해당하는지 구분할 수 없으며, 이를 더 일찍 거부하면 계정 존재 여부가 노출될 수 있습니다. allowlist는 인증 후에도 계속 적용되므로, 허용되지 않은 이메일은 등록을 완료할 수 없습니다.
인증 코드가 전송되기 전에 허용되지 않은 이메일을 거부하려면, 이메일 커넥터를 호출하기 전에 이미 allowlist 확인을 수행하는 명시적 sign-up/register 흐름을 사용하세요. 통합 로그인 경로에서도 이 확인이 필요하다면, PR fix(core): check the email allowlist before sending a sign-up sign-in code가 포함된 릴리스로 업그레이드하거나, 셀프 호스팅 빌드에서 해당 변경 사항을 cherry-pick한 후 Logto를 다시 빌드하세요. 업그레이드 후에는 allowlist에 없는 주소를 제출하여 수정 사항을 확인하세요. 인증 코드 요청이 즉시 실패해야 하며 어떤 이메일도 전송되지 않아야 합니다.