많은 설명서와 많은 시행 착오를 읽은 후 필자는 aws 모바일 허브 애플리케이션에서 개발자 인증을 위해 람다 (api 게이트웨이) 기반 백엔드를 실제로 만들 수있었습니다.모바일 허브 샘플 ios 애플리케이션 용 AWS 개발자 인증
- 내 개발자 ID 공급자를 만들 AWSCognitoCredentialsProviderHelper를 서브 클래스 화 한
- 구현 : 사용자 정의 클래스의 getIdentityId, 토큰 및 로그인
인스턴스 : 다음
devIdentityProvider = DeveloperIdentityProvider(
regionType: AWSRegionType.USEast1,
identityPoolId: getIdentityPoolFromPlist()!,
useEnhancedFlow: true,
providerName: "login.myapp",
identityProviderManager: AWSIdentityManager.defaultIdentityManager())
let credentialsProvider = AWSCognitoCredentialsProvider(
regionType: AWSRegionType.USEast1,
unauthRoleArn: nil,
authRoleArn: nil,
identityProvider: devIdentityProvider!)
let configuration = AWSServiceConfiguration(
region: AWSRegionType.USEast1,
credentialsProvider: credentialsProvider)
AWSServiceManager.defaultServiceManager().defaultServiceConfiguration = configuration
나는 credentialsProvider을 .credentials()를 사용하여 백엔드에서 반환 된 토큰/identityId에 대한 인증 된 자격 증명을 가져옵니다. 이 모든 작동하는 것 그리고 나는 AccessKey, SessionKey 등 다시 얻을 그래서 잘 작동하는 것. 에서
의 I는 AWSDynamoDB 또는 syncdata를 호출하려고하면, 비록 블록을 계속 내가 얻을 : 나는 모바일 허브 애플리케이션에서 AWS 서비스는 업데이트 된 자격 증명을받을 수 있는지 확인 누락 될 수 있습니다 무엇
Unauthenticated access is not supported for this identity pool.
? 또한, 어떻게 AWSIdentityManager를이 프로젝트에 참여시킬 수 있습니까? 왜냐하면 AWSIdentityManager.defaultIdentityManger는 결코 내 custom Identity Provider에서 userName 등을 얻지 못하기 때문입니다. 어떤 도움이라도 대단히 감사하겠습니다.
예, 인증되지 않은 액세스를 허용하는 옵션을 선택해 보았습니다. 그런 다음 일치하지 않는 세션 대 요청 신원 ID 오류가 발생합니다. 다시 자격 증명을 얻을 수있는 것 같은데, 기본 서비스에서는 사용할 수 없습니다 ... 앱을 통해 새로운 자격 증명이 전파 될지 잘 모르겠습니다. – xaksis
그 오류는 캐시 된 ID와 관련된 문제가 있음을 암시합니다. ID보다 긴 ID를 캐시하는 작업을하지 않았는지 확인하십시오. 정교하기 위해서는 identityId X를 사용하지만 identityId Y의 자격 증명을 사용하여 작업을 수행하려고한다는 것을 의미합니다. –