2016-10-15 3 views
1

AWS DynamoDB로 전송되는 자동차 데이터를 수집하는 iOS 및 Android 애플리케이션을 개발했습니다. 사용자가 Cognito 사용자 풀을 사용하여 모바일 앱을 통해 로그인합니다.PHP에서의 Cognito 사용자 풀 인증

이제 사용자의 데이터를 표시 할 웹 페이지를 만들고 싶습니다. 이를 위해 사용자는 자신의 자격 증명을 데이터베이스에서 정보를 검색하는 데 사용되는 웹 페이지 (SSL)에 제공해야합니다. 아래 코드는 잘 작동 (HTML 양식이 표시되지에서 사용자/암호를 얻을 수) :

<script src="jsbn.js"></script> 
<script src="jsbn2.js"></script> 
<script src="sjcl.js"></script> 
<script src="/path/to/moment.min.js"></script> 
<script src="aws-cognito-sdk.min.js"></script> 
<script src="amazon-cognito-identity.min.js"></script> 
<script src="/path/to/aws-sdk-2.3.5.js"></script> 
<script src="aws-sdk.js"></script> 
<script src="aws-sdk.min.js"></script> 


function completeAndRedirect() { 

    var authenticationData = { 
    Username : document.getElementById("UserID").value, 
    Password : document.getElementById("Password").value, 
}; 

var authenticationDetails = new AWSCognito.CognitoIdentityServiceProvider.AuthenticationDetails(authenticationData); 
var poolData = { UserPoolId : 'us-west-.......', 
    ClientId : '...................' 
}; 
var userPool = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(poolData); 
var userData = { 
    Username : 'test', 
    Pool : userPool 
}; 
var cognitoUser = new AWSCognito.CognitoIdentityServiceProvider.CognitoUser(userData); 

console.log('userid:'+authenticationData.Username); 
console.log('pass:'+authenticationData.Password); 
cognitoUser.authenticateUser(authenticationDetails, { 
    onSuccess: function (result) { 
     console.log('access token + ' + result.getAccessToken().getJwtToken()); 
    }, 

    onFailure: function(err) { 
     console.log('test'); 
     alert(err); 
    }, 

}); 

을}

그러나, 자바 스크립트는 클라이언트 측에서 실행하고 필요한 모든 포함됩니다 API 및 비밀 키.

필자는 PHP가 모든 것이 서버 측에 있기 때문에 선호한다고 읽었습니다. 그러나 올바른 방향으로 나를 가리키는 예제 나 참조를 찾지 못했습니다. User Pool Authentication using Php

모든 권장 사항 : 나는 아마존은 모든 자바 스크립트 예제와 자신의 포럼에 관련 코멘트 주어진 PHP를 사용하는 것이 좋습니다 것을하지 않는 것으로 앞으로 이동하는 방법을 알고하지 않는 한 지금은 의아해입니다

키를 난독 화하기 위해 JavaScript 암호화 외에도이 문제를 해결할 수 있습니까?

답변

0

Cognito User pools with Cognito Federated identity service을 사용하십시오.

Cognito Federated Identity 서비스는 페더레이션 ID 풀 역할을 통해 제어하는 ​​다른 AWS 서비스로 인증하는 데 사용할 수있는 임시 AWS 자격 증명을 고객에게 제공합니다. 자바 스크립트 앱에 AWS 액세스 및 비밀 키를 임베드 할 필요가 없으며 AWS 서비스와 안전하게 상호 작용할 수 있습니다.

코드 예는 here입니다.

+0

요약하면 사용자 인증을 얻고 AWS 서비스에 액세스하는 데 필요한 최소값은 다음과 같습니다. – Fredo

+0

ID 풀 ID – Fredo

+0

요약하면 사용자 인증을 획득하고 AWS 서비스에 액세스하기 위해 자바 스크립트에 임베드 할 수있는 최소 기능은 다음과 같습니다. ID 풀 ID, 사용자 풀 ID 및 클라이언트 ID 맞습니까? 그렇다면 안전하게 보관 해 두는 것이 안전할까요? – Fredo

관련 문제