2016-06-05 2 views
0

Итак, у меня есть базовый webapp, и я пытаюсь создать контроль доступа пользователей с помощью AWS cognito. У меня есть пользовательский поставщик авторизации и при вводе правильного имени пользователя. Я делаю следующее в моей странице входа:AWS cognito для javascript webapp. Как проверить, закончился ли токен cognito или нет

//Successful Login 
 
    var creds = AWS.config.credentials; 
 
    creds.params.IdentityId = output.identityId; 
 
    creds.params.Logins = {'cognito-identity.amazonaws.com': output.token}; \t 
 
\t \t \t \t \t \t \t 
 
//Store token in browser cache 
 
    localStorage.setItem('token', output.token); 
 
    localStorage.setItem('id', output.identityId); 
 
\t \t \t \t \t \t \t 
 
//Launch dashboard 
 
    window.location = "./index.html";

После того, как перенаправить пользователя на приборной панели, я вызвать функцию OnLoad, чтобы проверить, имеет ли пользователь правильные учетные данные и не истекли те. С помощью этого:

//read browser cache 
 
    var id = localStorage.getItem('id'); 
 
    var token = localStorage.getItem('token'); 
 
\t \t \t 
 
//validate session 
 
\t \t \t 
 
    AWS.config.region = 'ap-northeast-1'; 
 
    AWS.config.credentials = new AWS.CognitoIdentityCredentials({ 
 
    IdentityPoolId: id, 
 
\t Logins: {'cognito-identity.amazonaws.com': token} 
 
    }); 
 
\t \t \t 
 
//check if session is still active 
 
    if(AWS.config.credentials.expired) window.location = "./session-expire.html";

Проблема является истекли свойство всегда верно. Неважно что я делаю. Как вы, ребята, проверяете, действительны ли учетные данные ?.

Спасибо заранее, Rajan

+0

см это это может прояснить некоторые вопросы https://github.com/awslabs/aws-sdk-android-samples/blob/master/CognitoSyncDemo/src/com/amazonaws/cognito/sync/demo/DeveloperAuthenticationProvider.java # L97 – error2007s

ответ

1

В образцах кода вы указали, что вы никогда не приобретающие учетные данные. Вы устанавливаете поставщика учетных данных, но не вызываете никаких служб с ним или явно пытаетесь получить учетные данные.

Во-вторых, учетные данные не сохраняются при загрузке страниц.

Это приведет к тому, что учетные данные истекли в ваших образцах кода.

Этот вопрос может помочь вам, просто замените фейсбуки собственным потоком авторизации разработчика. AWS.config.credentials are null between page requests

Смежные вопросы