https://github.com/terma/api-gateway-cloudfront-login
https://github.com/terma/api-gateway-cloudfront-login
api-gateway aws cloudfront lambda nodejs openid
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/terma/api-gateway-cloudfront-login
- Owner: terma
- License: mit
- Created: 2017-12-10T04:29:18.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-02-19T19:49:26.000Z (over 8 years ago)
- Last Synced: 2025-08-15T23:20:43.832Z (11 months ago)
- Topics: api-gateway, aws, cloudfront, lambda, nodejs, openid
- Language: JavaScript
- Size: 22.5 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# api-gateway-cloudfront-login
[](https://badge.fury.io/js/api-gateway-cloudfront-login)
[](https://travis-ci.org/terma/api-gateway-cloudfront-login)
[](https://coveralls.io/github/terma/api-gateway-cloudfront-login?branch=master)
## How to use
### Add dependency
```npm i api-gateway-cloudfront-login --save```
### Handler for lambda
```Handler: node_modules/api-gateway-cloudfront-login/index.handler```
### Configuration
For CloudFormation configure properties as env variables [More](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-environment)
```
DOMAIN_NAME string
COGNITO_IDENTITY_POOL_ID string
REGION string - optional default 'us-west-2'
ASSUME_ROLE string - optional if specified additional assume provided role and return credentials
CLOUD_FRONT_KEY_ID string
CLOUD_FRONT_PRIVATE_KEY string
OPEN_ID_DISCOVER_URL string
OPEN_ID_LOGIN string
OPEN_ID_CLIENT_ID string
OPEN_ID_LOGIN_URL string
OPEN_ID_TARGET_URL string
DEBUG boolean - optional by default false
```
### Example
```yaml
Type: "AWS::Lambda::Function"
Properties:
Code:
Code
Environment:
DOMAIN_NAME: X
COGNITO_IDENTITY_POOL_ID: pool-id
CLOUD_FRONT_KEY_ID: AAA
CLOUD_FRONT_PRIVATE_KEY: BBB
OPEN_ID_DISCOVER_URL: X
OPEN_ID_LOGIN: X
OPEN_ID_CLIENT_ID: X
OPEN_ID_LOGIN_URL: X
OPEN_ID_TARGET_URL: X
FunctionName: MyFunction
Handler: node_modules/api-gateway-cloudfront-login/index.handler
```
## Result
After successeful login provide cookies:
CloudFront Signed Cookies [More](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-signed-cookies.html)
HttpOnly not accessible by JavaScript
```
CloudFront-Policy
CloudFront-Key-Pair-Id
CloudFront-Signature
```
Cognito User Credentials:
```
AWS-Access-Key-Id
AWS-Secret-Access-Key
AWS-Session-Token
```
Assumed role credentials only if ```ASSUME_ROLE``` specified:
```
Assume-AWS-Access-Key-Id
Assume-AWS-Secret-Access-Key
Assume-AWS-Session-Token
```