fastify-twitch-ebs-tools
As of 15 March 2023 this project is no longer updated or maintained.
Fastify plugin providing utility functions for Twitch Extension Backend Services (EBS).
Install
npm install fastify-twitch-ebs-tools
Manual build
git clone https://github.com/lwojcik/fastify-twitch-ebs-tools.git
cd fastify-twitch-ebs-tools
npm install
npm run build
Usage
Register as a plugin to get access to additional methods.
Example below assumes Twitch token to be sent via request headers.
const fastify = require("fastify");
fastify.register(require("fastify-twitch-ebs-tools"), {
secret: "twitch shared secret",
disabled: false,
});
fastify.get("/config/:channelId", (req, reply) => {
const { token } = req.headers;
const { channelId } = req.params;
const valid = fastify.twitchEbs.validatePermission(
token,
channelId,
"broadcaster"
);
if (valid) {
// do something and send the reply back
reply.send(/* reply object */);
} else {
// error 400
}
});
fastify.listen(3000, (error) => {
if (error) throw error;
});
Options
-
secret
- Twitch shared secret used to sign and verify JWTs (required). The plugin will throw an error if no secret is provided. Required. -
disabled
- iftrue
, all validation methods will returntrue
. Useful for temporarily disabling route authentication for debugging purposes. Does not affectvalidateToken()
method. Defaults tofalse
. Optional.
Usage
All plugin methods pass arguments to relevant methods of twitch-ebs-tools
. Refer to twitch-ebs-tools
documentation to get more details.
Available methods:
-
fastify.twitchEbs.validatePermission(token, channelId, roles, ignoreExpiration?)
-
fastify.twitchEbs.verifyChannelIdAndRole(payload, channelId, role)
Contributions
Contributions of any kind are welcome.
You can contribute to Fastify-twitch-ebs-tools by:
- submiting bug reports or feature suggestions
- improving documentation
- submitting pull requests
Before contributing be sure to read Contributing Guidelines and Code of Conduct.
Contributors
To all who contribute code, improve documentation, submit issues or feature requests - thank you for making Fastify-twitch-ebs-tools even better!
We maintain an AUTHORS file where we keep a list of all project contributors. Please consider adding your name there with your next PR.
License
Licensed under MIT License. See LICENSE for more information.
Legal
This project is not authored, affiliated or endorsed in any way by Twitch.tv.