인증 트리거
2024 9월부터 Atlas Device SDK는 더 이상 사용되지 않으며 2025 9월에 수명이 종료됩니다. 이는 더 이상 React 에 대한 인증 이벤트가 없기 때문에 인증 트리거에 영향을 미칩니다.
인증 trigger 는 사용자가 인증 제공자 와 상호 작용할 때 실행됩니다. 인증 트리거를 사용하여 고급 사용자 관리 를 구현 수 있습니다. 일부 용도는 다음과 같습니다.
연결된 클러스터 에 새 사용자 데이터를 저장합니다.
사용자 삭제 시 데이터 무결성 유지.
로그인할 때 사용자의 정보를 사용하여 서비스 호출.
구성
인증 Atlas Triggers에는 다음과 같은 구성 옵션이 있습니다.
필드 | 설명 |
---|---|
Trigger Type | trigger 의 유형입니다. 인증 트리거의 경우 이 값을 AUTHENTICATION 로 설정하다 합니다. |
Trigger Name | 트리거의 이름입니다. |
Linked Function | 가 trigger 실행될 때 실행되는 함수 의 이름입니다. 이 객체 는 trigger 인증 이벤트 객체 로 인해 가 실행된 후 가 함수에 전달하는 유일한 trigger 인수입니다. |
Operation Type | 트리거를 실행시키는 인증 작업 유형입니다. |
Providers | 하나 이상의 인증 제공자 유형 목록입니다. trigger 는 이러한 제공자가 생성한 인증 이벤트만 수신 대기합니다. |
인증 이벤트
인증 이벤트는 인증 제공자와의 사용자 상호 작용을 나타냅니다. 각 이벤트는 다음 작업 유형 중 하나를 사용하는 단일 조치에 해당합니다.
작업 유형 | 설명 |
---|---|
LOGIN | 로그인하는 사용자의 단일 인스턴스를 나타냅니다. |
CREATE | 새 사용자 생성을 나타냅니다. |
DELETE | 사용자 삭제를 나타냅니다. 삭제된 사용자가 여러 제공자에 연결된 경우 해당 사용자의 DELETE 이벤트 에는 연결된 모든 제공자가 포함됩니다. |
인증 이벤트 객체의 형식은 다음과 같습니다.
{ "operationType": <string>, "providers": <array of strings>, "user": <user object>, "time": <ISODate> }
예시
온라인 저장 에서 각 고객에 대한 사용자 지정 메타데이터 를 Atlas 에 저장 하려고 합니다. 각 고객에게는 store.customers
컬렉션 에 있는 문서 가 필요합니다. 그런 다음 저장 는 고객의 문서 에 메타데이터 를 기록 하고 쿼리 할 수 있습니다.
컬렉션 은 각 고객을 나타내야 합니다. 이를 보장하기 위해 저장 는 인증 trigger 를 생성합니다. 이 trigger 는 이메일/비밀번호 인증 제공자 에서 새로 생성된 사용자를 수신한 다음 인증 이벤트 객체 를 연결된 함수 createNewUserDocument
에 전달합니다.
createNewUserDocument
함수는 사용자와 해당 활동을 설명하는 새 문서 를 만듭니다. 그런 다음 함수는 문서 를 store.customers
컬렉션 에 삽입합니다.
exports = async function(authEvent) { const mongodb = context.services.get("mongodb-atlas"); const customers = mongodb.db("store").collection("customers"); const { user, time } = authEvent; const isLinkedUser = user.identities.length > 1; if(isLinkedUser) { const { identities } = user; return users.updateOne( { id: user.id }, { $set: { identities } } ) } else { return users.insertOne({ _id: user.id, ...user }) .catch(console.error) } await customers.insertOne(newUser); }