2016-12-22 2 views
3

Я ищу способы избежать создания ec2 instance, чтобы иметь действительный URL-адрес обратного вызова для выполнения рукопожатия oauth.Возможно ли использовать AWS Lambda для запроса маркера oauth 2.0?

Я планирую использовать Lambda для подключения к удаленному API, но мне нужно сначала получить токен, который действителен только в течение 6 часов.

Есть ли способ, которым я могу сделать рукопожатие через Lambda функции?

ответ

4

Я думаю, Lambda вместе с API Gateway предлагает хорошее решение. API Gateway позволяет создавать постоянную, общедоступную конечную точку HTTP. Вы можете определить конкретные конкретные «ресурсы», которые отображают методы HTTP для вызовов лямбда-функций.

Я не особенно знаком с OAuth 2, но я представляю себе что-то вроде этого: в API Gateway определите ресурс '/ callback' с помощью метода GET, который вызывает вашу функцию Lambda.

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

https://c1bql2cdxy.execute-api.us-east-1.amazonaws.com/callback

Поступая таким образом, удаленный сервис будет вызывать вашу функцию лямбда, которая затем может прочитать разрешение токен из запроса и использовать его, как это необходимо, независимо от того, включает ли это: 1) хранение токена в базе данных для будущего использования (и повторного использования) другими службами; 2) непосредственное обращение к службам в пределах одной и той же функции лямбда и т. д.

+0

много для редактирования и ответа, звучит многообещающе. Я проверю все и вернусь, чтобы отметить его как правильное. – JordanBelf

+0

Hi @rumdrums, как работает oauth 2, вы сначала отправляете запрос GET для получения кода, а затем используете этот код в запросе POST с некоторыми другими данными в виде секретного ключа, идентификатора приложения и т. Д. Я пытаюсь понять API Поток шлюза. Я должен создать 2 разных ресурса правильно? И затем назовите их своей лямбда-функцией. Извините, если это не имеет смысла, я пытаюсь понять, как это работает. Еще раз спасибо – JordanBelf

+1

@JordanBelf Я думаю, что вы определенно на правильном пути. Поскольку вопрос ограничивался частью обратного вызова обратного вызова, я не очень задумывался над начальной частью - когда пользователь запрашивает у вашего приложения начальную ссылку на авторизацию, - но я думаю, что вы определенно захотите разделить Лямбда-сервис, доступный по другому URL-адресу, который пользователь может получить для получения этой ссылки. Оттуда пользователь аутентифицируется с помощью службы авторизации, после чего он перенаправляется на ваш URL обратного вызова. Имеет ли это смысл? – rumdrums

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