인증되지 않은 사용자를 인증된 사용자로 전환(자격 증명 풀) - Amazon Cognito

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

인증되지 않은 사용자를 인증된 사용자로 전환(자격 증명 풀)

Amazon Cognito 자격 증명 풀은 인증된 사용자와 인증되지 않은 사용자를 모두 지원합니다. 인증되지 않은 사용자는 자격 증명 공급자(IdP)로 로그인하지 않았더라도 AWS 리소스에 대한 액세스 권한을 받습니다. 이 액세스 권한 등급은 사용자가 로그인하기 전에 사용자에게 콘텐츠를 표시하는 데 유용합니다. 인증되지 않은 각 사용자는 개별적으로 로그인되지 않았으며 인증되지 않은 경우에도 자격 증명 풀에 고유한 자격 증명이 있습니다.

이 섹션에서는 사용자가 인증되지 않은 자격 증명으로 로그인하는 것에서 인증된 자격 증명을 사용하는 것으로 전환하도록 선택하는 경우에 대해 설명합니다.

Android

사용자는 인증되지 않은 게스트로 애플리케이션에 로그인할 수 있습니다. 결국 지원되는 IdP 중 하나를 사용하여 로그인하기로 결정할 수 있습니다. Amazon Cognito는 이전 자격 증명이 새 자격 증명과 동일한 고유 식별자를 유지하고, 프로파일 데이터가 자동으로 병합되도록 합니다.

IdentityChangedListener 인터페이스의 프로파일 병합을 통해 애플리케이션에 알립니다. 인터페이스에 identityChanged 메서드를 구현하여 이러한 메시지를 수신할 수 있습니다.

@override public void identityChanged(String oldIdentityId, String newIdentityId) { // handle the change }

iOS - Objective-C

사용자는 인증되지 않은 게스트로 애플리케이션에 로그인할 수 있습니다. 결국 지원되는 IdP 중 하나를 사용하여 로그인하기로 결정할 수 있습니다. Amazon Cognito는 이전 자격 증명이 새 자격 증명과 동일한 고유 식별자를 유지하고, 프로파일 데이터가 자동으로 병합되도록 합니다.

NSNotificationCenter는 애플리케이션에 프로파일 병합을 알립니다.

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(identityIdDidChange:) name:AWSCognitoIdentityIdChangedNotification object:nil]; -(void)identityDidChange:(NSNotification*)notification { NSDictionary *userInfo = notification.userInfo; NSLog(@"identity changed from %@ to %@", [userInfo objectForKey:AWSCognitoNotificationPreviousId], [userInfo objectForKey:AWSCognitoNotificationNewId]); }

iOS - Swift

사용자는 인증되지 않은 게스트로 애플리케이션에 로그인할 수 있습니다. 결국 지원되는 IdP 중 하나를 사용하여 로그인하기로 결정할 수 있습니다. Amazon Cognito는 이전 자격 증명이 새 자격 증명과 동일한 고유 식별자를 유지하고, 프로파일 데이터가 자동으로 병합되도록 합니다.

NSNotificationCenter는 애플리케이션에 프로파일 병합을 알립니다.

[NSNotificationCenter.defaultCenter().addObserver(observer: self selector:"identityDidChange" name:AWSCognitoIdentityIdChangedNotification object:nil) func identityDidChange(notification: NSNotification!) { if let userInfo = notification.userInfo as? [String: AnyObject] { print("identity changed from: \(userInfo[AWSCognitoNotificationPreviousId]) to: \(userInfo[AWSCognitoNotificationNewId])") } }

JavaScript

처음에 인증되지 않은 사용자

사용자는 일반적으로 인증되지 않은 역할로 시작합니다. 이 역할의 경우 로그인 속성 없이 구성 객체의 인증 자격 증명 속성을 설정합니다. 이 경우, 기본 구성은 다음과 같을 수 있습니다.

// set the default config object var creds = new AWS.CognitoIdentityCredentials({ IdentityPoolId: 'us-east-1:1699ebc0-7900-4099-b910-2df94f52a030' }); AWS.config.credentials = creds;

인증된 사용자로 전환

인증되지 않은 사용자가 IdP에 로그인한 상태에서 현재 사용자가 토큰을 갖고 있다면, 인증 자격 증명 객체를 업데이트하고 Logins 토큰을 추가하는 사용자 지정 함수를 호출하여 인증되지 않은 사용자를 인증된 사용자로 전환할 수 있습니다.

// Called when an identity provider has a token for a logged in user function userLoggedIn(providerName, token) { creds.params.Logins = creds.params.Logins || {}; creds.params.Logins[providerName] = token; // Expire credentials to refresh them on the next request creds.expired = true; }

또한 CognitoIdentityCredentials 객체를 생성할 수 있습니다. 이 경우 업데이트된 인증 자격 증명 구성 정보를 반영하도록 기존 서비스 객체의 인증 자격 증명 속성을 재설정해야 합니다. 전역 구성 객체 사용을 참조하세요.

CognitoIdentityCredentials 객체에 대한 자세한 내용은 AWS SDK for JavaScript API 참조에서 AWS.CognitoIdentityCredentials를 참조하세요.

Unity

사용자는 인증되지 않은 게스트로 애플리케이션에 로그인할 수 있습니다. 결국 지원되는 IdP 중 하나를 사용하여 로그인하기로 결정할 수 있습니다. Amazon Cognito는 이전 자격 증명이 새 자격 증명과 동일한 고유 식별자를 유지하고, 프로파일 데이터가 자동으로 병합되도록 합니다.

IdentityChangedEvent를 구독하여 프로파일 병합에 대한 알림을 받을 수 있습니다.

credentialsProvider.IdentityChangedEvent += delegate(object sender, CognitoAWSCredentials.IdentityChangedArgs e) { // handle the change Debug.log("Identity changed from " + e.OldIdentityId + " to " + e.NewIdentityId); };

Xamarin

사용자는 인증되지 않은 게스트로 애플리케이션에 로그인할 수 있습니다. 결국 지원되는 IdP 중 하나를 사용하여 로그인하기로 결정할 수 있습니다. Amazon Cognito는 이전 자격 증명이 새 자격 증명과 동일한 고유 식별자를 유지하고, 프로파일 데이터가 자동으로 병합되도록 합니다.

credentialsProvider.IdentityChangedEvent += delegate(object sender, CognitoAWSCredentials.IdentityChangedArgs e){ // handle the change Console.WriteLine("Identity changed from " + e.OldIdentityId + " to " + e.NewIdentityId); };