Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alexa-js/alexa-verifier-middleware
An express middleware that verifies HTTP requests sent to an Alexa skill are sent from Amazon.
https://github.com/alexa-js/alexa-verifier-middleware
alexa alexa-skill alexa-verifier amazon middleware
Last synced: about 1 month ago
JSON representation
An express middleware that verifies HTTP requests sent to an Alexa skill are sent from Amazon.
- Host: GitHub
- URL: https://github.com/alexa-js/alexa-verifier-middleware
- Owner: alexa-js
- License: mit
- Created: 2016-10-31T06:57:46.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2024-06-16T13:46:32.000Z (6 months ago)
- Last Synced: 2024-08-04T00:03:58.724Z (5 months ago)
- Topics: alexa, alexa-skill, alexa-verifier, amazon, middleware
- Language: JavaScript
- Homepage:
- Size: 2.07 MB
- Stars: 31
- Watchers: 3
- Forks: 6
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# alexa-verifier-middleware
![NPM Version](https://img.shields.io/npm/v/alexa-verifier-middleware.svg)
![Github CI status](https://github.com/alexa-js/alexa-verifier-middleware/actions/workflows/main.yml/badge.svg)
An [express](https://www.npmjs.com/package/express) middleware that verifies HTTP requests sent to an Alexa skill are sent from Amazon.
Version 3.x is now a pure ES module, and requires node 12.17 or higher. If you want to run this via an older version of node, use
[[email protected]](https://www.npmjs.com/package/alexa-verifier-middleware/v/1.0.3)### Usage
It is recommended that you attach all Alexa routes to an express Router.
```javascript
import express from 'express';
import verifier from 'alexa-verifier-middleware';const app = express();
// create a router and attach to express before doing anything else
const alexaRouter = express.Router();
app.use('/alexa', alexaRouter);// attach the verifier middleware first because it needs the entire
// request body, and express doesn't expose this on the request object
alexaRouter.use(verifier);// Routes that handle alexa traffic are now attached here.
// Since this is attached to a router mounted at /alexa,
// this endpoint will be accessible at /alexa/weather_info
alexaRouter.get('/weather_info', function (req, res) { ... });app.listen(3000);
```### Common errors
#### The raw request body has already been parsed.
* This means that you're probably using one of the body-parser middlewares and it is loaded before this one. To fix it, you should load the body-parsers **after** this one.Before:
```javascript
const alexaRouter = express.Router();
app.use('/alexa', alexaRouter);// INCORRECT
alexaRouter.use(bodyParser.json());
alexaRouter.use(verifier);
```After:
```javascript
const alexaRouter = express.Router();
app.use('/alexa', alexaRouter);// CORRECT
alexaRouter.use(verifier);
alexaRouter.use(bodyParser.json());
```### Mentions
* [mreinstein](https://github.com/mreinstein) for his [alexa-verifier](https://github.com/mreinstein/alexa-verifier) module, which allows you to verify any Amazon requests from any web service