Skip to content
Migrating from NextAuth.js v4? Read our migration guide.

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 설정하기

./src/auth.ts
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,
    }),
  ],
})
Auth.js © Balázs Orbán and Team - 2025