1
我正在使用aws lambdas,dynamodb和cognito構建認證系統。如何驗證getOpenIdTokenForDeveloperIdentity認證令牌
我一直在比較從getOpenIdTokenForDeveloperIdentity()提供的令牌;與服務器中的一個人呼叫特定身份。
我得到令牌和身份有:
function getToken(email, fn) {
var param = {
IdentityPoolId: cognitoIdentityPoolId,
Logins: {} // To have provider name in a variable
};
param.Logins[cognitoDeveloperProvidedName] = email;
cognitoidentity.getOpenIdTokenForDeveloperIdentity(param,
function(err, data) {
if (err) return fn(err); // an error occurred
else fn(null, data.IdentityId, data.Token); // successful response
});
}
話,據我瞭解,我可以得到cognito已經生成的令牌(不是新建一個)是這樣的:
function checkToken(IdentityId, email, fn){
var param = {
IdentityPoolId: cognitoIdentityPoolId,
IdentityId: IdentityId,
Logins: {}
};
param.Logins[cognitoDeveloperProvidedName] = email;
cognitoidentity.getCredentialsForIdentity(param,
function(err, data) {
if (err) return fn(err);
else fn(null, data);
});
}
但我似乎無法得到它的工作
任何想法?
是,一旦你的cognito令牌,如你所發現的,提供者現在是cognito-identity.amazonws.com。 –
在文檔中不是很清楚,必須找到一個用Java編寫的例子來找出它,希望有人找到這篇文章,並節省了我花在它上面的3個小時。 – csilk
嗨@MarkMercurio和Cub3。你可以澄清這個checkToken函數是否用於檢查來自客戶端的令牌嗎?我的意思是,如果令牌是在登錄API方法中生成的(使用getOpenIdTokenForDeveloperIdentity)並將令牌發送給客戶端,則客戶端使用此令牌調用其他方法,因此需要使用getCredentialsForIdentity進行令牌驗證。它是否正確?我應該將用戶的身份標識存儲在我的數據庫中嗎?先謝謝你 – Endymion