데이터인증
소셜 로그인
GitHub, Google, Kakao 로그인을 연결합니다. 프로젝트별로 OAuth 앱을 등록합니다.
runlot auth provider set github --client-id <id> --client-secret <secret>
runlot auth provider set google --client-id <id> --client-secret <secret>
runlot auth provider set kakao --client-id <id> --client-secret <secret>--client-secret을 생략하면 터미널에서 값을 입력하라는 안내가 표시됩니다. 이 명령에는 admin 역할이 필요합니다.
등록한 제공자는 기본 로그인 화면에 버튼으로 표시됩니다.
콜백 URL
각 제공자의 OAuth 앱 설정에 다음 URL을 등록하세요.
https://<여러분의 주소>/__runlot/auth/callback/<provider>정확한 URL은 다음 명령으로 확인할 수 있습니다.
runlot auth status자체 로그인 화면에서 사용하기
import { signInUrl } from "@runlot/auth/client";
<a href={signInUrl("github", { next: "/app" })}>GitHub로 계속하기</a>위 코드는 /__runlot/auth/sign-in/github?next=%2Fapp으로 연결합니다. next가 외부 URL이거나 //로 시작하면 보안을 위해 무시합니다.
프로젝트별 OAuth 앱
공용 OAuth 앱은 제공하지 않습니다. 프로젝트마다 자체 client ID와 secret을 등록해야 합니다. 그러면 동의 화면에 여러분의 앱 이름이 표시되고, API 사용 한도와 제공자 정책도 프로젝트 설정에 따라 적용됩니다.
동일 이메일 계정 연결
비밀번호 로그인과 소셜 로그인이 같은 이메일 주소를 사용하면 하나의 사용자 계정으로 연결됩니다. 사용 중인 로그인 제공자는 user.providers에서 확인할 수 있습니다.
const user = await env.auth.user(request);
user.providers; // ["password", "github"]제공자 연결 해제
runlot auth provider rm github해제한 제공자로만 로그인하던 사용자는 비밀번호 재설정으로 다시 접근할 수 있습니다.