api-gateway-policy-gen
Version:
A Policy Generator for API Gateway Custom Authorizers
64 lines (50 loc) • 1.94 kB
Markdown
for API Gateway Custom Authorizers
`npm i api-gateway-policy-gen`
```js
const utils = require('api-gateway-policy-gen').utils;
const policyGenerator = require('api-gateway-policy-gen').policyGenerator;
module.exports.handler = function(event, context, cb) {
// Get's the token from the header in the format 'Bearer xxjklsadf'
const idToken = utils.getBearerToken(event.authorizationToken);
if (!idToken) {
return cb('No auth token supplied');
}
// Do something to ensure the user is authorized
// i.e. decode JWT
const user = authorizeUser(idToken);
const principalId = user.id;
const authInfo = utils.getAuthInfo(event.methodArn);
// optional context
const context = {
role: 'admin'
};
// allow access to all methods
const result = policyGenerator.generatePolicy(principalId, authInfo, [{
allow: true,
methods: [{
verb: '*',
resource: '*'
}]
}], context);
cb(null, result);
)
```
Welcome. Please submit an issue before sending a PR.
MIT
[ ]: https://badge.fury.io/js/api-gateway-policy-gen.svg
[ ]: https://npmjs.org/package/api-gateway-policy-gen
[ ]: https://travis-ci.org/ACloudGuru/api-gateway-policy-gen.svg?branch=master
[ ]: https://travis-ci.org/ACloudGuru/api-gateway-policy-gen
[ ]: https://david-dm.org/ACloudGuru/api-gateway-policy-gen.svg?theme=shields.io
[ ]: https://david-dm.org/ACloudGuru/api-gateway-policy-gen
[ ]: https://coveralls.io/repos/ACloudGuru/api-gateway-policy-gen/badge.svg
[ ]: https://coveralls.io/r/ACloudGuru/api-gateway-policy-gen
[![NPM version][npm-image]][npm-url]
[![Build Status][travis-image]][travis-url]
[![Dependency Status][daviddm-image]][daviddm-url]
[![Coverage percentage][coveralls-image]][coveralls-url]
A Policy Generator