runlot
데이터인증

소셜 로그인

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 역할이 필요합니다.

등록하면 만들어 드리는 로그인 화면에 버튼이 생깁니다.

콜백 주소

각 제공자의 앱 설정에 넣어야 하는 주소입니다.

https://<여러분의 주소>/__runlot/auth/callback/<provider>

정확한 값은 명령으로 확인하실 수 있습니다.

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 가 외부 주소이거나 // 로 시작하면 조용히 무시합니다.

프로젝트마다 자기 앱

공용 OAuth 앱이 없습니다. 각 프로젝트가 자기 client id·secret 을 등록합니다. 그래야 동의 화면에 여러분의 앱 이름이 뜨고, 발급 한도와 정책이 여러분의 것이 됩니다.

계정 잇기

같은 이메일로 비밀번호 가입과 소셜 로그인을 하시면 한 사용자로 이어집니다. user.providers 에 둘 다 들어갑니다.

const user = await env.auth.user(request);
user.providers; // ["password", "github"]

떼기

runlot auth provider rm github

이미 그 제공자로만 로그인하던 사용자는 비밀번호 재설정으로 들어올 수 있습니다.

이 페이지에서