2015-09-18 3 views
11

Я разрабатываю веб-приложение на основе шлюза API Amazon. Теперь я создал Facebook и успешно зарегистрировался на сайте. но когда я называю другой API, все ушло. Я думаю, что я должен передавать токен Cognito при вызове API каждый раз. я прав?Как пропустить токен Cognito для шлюза API Amazon?

если да, то как передать токен Cognito в API? как заголовок? или по-другому?

Спасибо,

+0

Что вы имеете в виду все ушло? Какая информация вам нужна для вызова в API API шлюза? –

+0

Можете ли вы предоставить несколько примеров кода и сообщений об ошибках, которые вы получаете? –

+0

@ScottWilleke мои вызовы на странице входа/doLogin API, затем я получаю токен и идентификатор от Cognito. После этого я перехожу на ограниченную страницу, такую ​​как профиль, она вызывает/showProfile API. Прямо сейчас/showProfile не знает, что я вошел в систему или нет. Так что дает мне ошибку «Отсутствует токен аутентификации». Я думаю, что я должен отправить свой токен и идентификатор ко всем вызовам API-шлюза, но как их отправить? заголовок вроде «Amazon-Cognito-Token»? или по-другому? – user2882027

ответ

15

Вы используете «основной Authflow» от идентичности Cognito, что означает, что вам нужно будет получить учетные данные для пользователей с помощью вызова STS, «AssumeRoleWithWebIdentity». Вот некоторые документы, чтобы помочь: http://docs.aws.amazon.com/cognito/devguide/identity/concepts/authentication-flow/

После того, как у вас есть учетные данные, вы можете создать экземпляр клиента шлюза API:

var client = apigClientFactory.newClient({ 
    accessKey: ACCESS_KEY, 
    secretKey: SECRET_KEY, 
    sessionToken: SESSION_TOKEN }); 

Ключи и жетоны приходят от результата «AssumeRoleWithWebIdentity» вызова.

Если вы правильно настроили роли IAM и авторизации, вы должны иметь доступ к вашему API.

Здесь документация, описывающая, как настроить ролей & разрешение: http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-method-settings.html#how-to-method-settings-callers-console

Кроме того, здесь, как включить CORS - http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-cors.html

+0

Должен ли я использовать apigClientFactory в JS моего веб-интерфейса? – user2882027

+0

Что вы использовали ранее? –

+0

Как использовать защищенный шлюз api с использованием запроса AJAX, зачем нужны заголовки? как их создавать и устанавливать? вот одно сообщение в блоге о том, как вызвать защищенный шлюз, используя ajax, на этом посте плакат использует заголовок x-api-key. Это похоже на токен JWT, как я могу сгенерировать APIKEY или как установить ключи и токены из AssumeRoleWithWebIdentity в ajax-запрос? http://dev.classmethod.jp/cloud/aws/call_amazon-api-gateway_from_browser/ – user2882027

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