fastify-twitch-ebs-tools

Fastify plugin providing useful functions for Twitch Extension Backend Services (EBS)

Usage no npm install needed!

<script type="module">
  import fastifyTwitchEbsTools from 'https://cdn.skypack.dev/fastify-twitch-ebs-tools';
</script>

README

fastify-twitch-ebs-tools

npm (latest) Build status codecov

Fastify plugin providing utility functions for Twitch Extension Backend Services (EBS). Internally it uses twitch-ebs-tools.

Install

npm install fastify-twitch-ebs-tools

Manual build

git clone https://github.com/lukemnet/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 - if true, all validation methods will return true. Useful for temporarily disabling route authentication for debugging purposes. Does not affect validateToken() method. Defaults to false. 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:

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.