1.0.0 • Published 6 months ago
botbye-node-express v1.0.0
Express
Install
npm i botbye-node-express
or
yarn add botbye-node-express
Usage
1. Import botbye
module:
const botbye = require('botbye-node-express')
2. Call init
with SERVER_KEY:
const validateRequest = botbye.init('MY_SERVER_KEY');
3. Use validateRequest
on handlers where you need bot protection
app.get('/', async (req, res) => {
const botbyeToken = req.headers['botbye-challenge'] // get token from header or any place you store it
const customFileds = [
'my custom field 1 value',
'my custom field 2 value',
'my custom field 3 value'
];
/**
* @param {String} botbyeToken - Token from client side
* @param {Object} request - express request
* @param optional {Array} customFields - Additional fields
* @return {Promise} - botByeResponse promise
*/
const botByeResponse = await botbye.validateRequest(botbyeToken, req, customFileds);
const isBot = botByeResponse.result?.isBot;
if (isBot) {
...
}
...
})
Examples of botByeResponse:
Bot detected:
{
reqId: 'f77b2abd-c5d7-44f0-be4f-174b04876583'
result: {
isBot: true
}
,
error: null
}
Bot not detected:
{
reqId: 'f77b2abd-c5d7-44f0-be4f-174b04876583'
result: {
isBot: false
}
,
error: null
}
Invalid serverKey:
{
reqId: 'f77b2abd-c5d7-44f0-be4f-174b04876583'
result: null
error: {
message: `[BotBye] Bad Request: Invalid Server Key`
}
}
4. Full code example
const express = require('express')
const botbye = require('botbye-node-express')
const app = express();
botbye.init('MY_SERVER_KEY');
app.get('/', async (req, res) => {
const botbyeToken = req.headers['botbye-challenge'] // get token from header or any place you store it
const botByeResponse = await botbye.validateRequest(botbyeToken, req);
const isBot = botByeResponse.result?.isBot;
res.status(isBot ? 403 : 200);
res.send();
})
const PORT = 3000;
app.listen(PORT, () => {
...
})
1.0.0
6 months ago