Loops Provider
개요
Loops 프로바이더는 이메일을 통해 “매직 링크”를 전송합니다. 이 링크에는 검증 토큰이 포함된 URL이 있어 로그인에 사용할 수 있습니다.
하나 이상의 OAuth 서비스와 함께 이메일을 통한 로그인 기능을 추가하면, 사용자가 OAuth 계정에 접근할 수 없을 때(예: 계정이 잠기거나 삭제된 경우) 로그인할 수 있는 방법을 제공합니다.
Loops 프로바이더는 하나 이상의 OAuth 프로바이더와 함께 사용하거나 대체하여 사용할 수 있습니다.
작동 방식
초기 로그인 시, 제공된 이메일 주소로 **인증 토큰(Verification Token)**이 전송됩니다. 기본적으로 이 토큰은 24시간 동안 유효합니다. 이 시간 내에 인증 토큰을 사용하면(예: 이메일의 링크를 클릭) 사용자 계정이 생성되고 로그인됩니다.
누군가 로그인할 때 기존 계정의 이메일 주소를 제공하면, 이메일이 전송되고 이메일의 링크를 따라가면 해당 이메일 주소와 연결된 계정으로 로그인됩니다.
Loops 프로바이더는 JSON Web Token과 데이터베이스 관리 세션 모두와 함께 사용할 수 있지만, 데이터베이스를 구성해야 합니다. 데이터베이스를 사용하지 않고 이메일 로그인을 활성화할 수는 없습니다.
Configuration
Loops에서 도메인 추가 및 확인하기
먼저, Loops 문서의 ‘Start here’ 섹션에 설명된 단계를 완료해야 합니다.
가장 중요한 것은 도메인 레코드 설정입니다.
API 키 생성하기
다음으로 Loops 대시보드에서 API 키를 생성해야 합니다. 이 API 키를 AUTH_LOOPS_KEY
환경 변수로 저장할 수 있습니다.
AUTH_LOOPS_KEY=abc
Loops에서 트랜잭셔널 이메일 템플릿 만들기
가장 쉬운 방법은 Loops 이메일 에디터를 사용해 트랜잭셔널 이메일 템플릿을 만드는 것입니다.
Loops가 처음이라면, 여기에서 풍부한 문서를 찾을 수 있습니다.
템플릿 생성 과정의 마지막 페이지에서 Transactional ID 값을 복사하고, 이를
AUTH_LOOPS_TRANSACTIONAL_ID
환경 변수로 저장하세요. 이 단계를 따르고 있다면,
이제 Loops를 위해 두 개의 환경 변수가 설정되어 있어야 합니다.
AUTH_LOOPS_KEY=abc
AUTH_LOOPS_TRANSACTIONAL_ID=def
이메일 템플릿을 만들 때, 반드시 url
변수를 템플릿에 포함시키세요. 이 URL은
사용자에게 전송되어 로그인할 수 있도록 해줍니다.
Loops Provider와 함께 AuthJS 설정하기
import { SvelteKitAuth } from "@auth/sveltekit"
import Loops from "@auth/sveltekit/providers/loops"
import { AUTH_LOOPS_KEY, AUTH_LOOPS_TRANSACTIONAL_ID } from "@env/static/private"
export const { handle, signIn, signOut } = SvelteKitAuth({
adapter: ..., // 선택한 데이터베이스 어댑터
providers: [
Loops({
apiKey: AUTH_LOOPS_KEY,
transactionalId: AUTH_LOOPS_TRANSACTIONAL_ID,
}),
],
})