@acceleratxr/passport-discord-token
TypeScript icon, indicating that this package has built-in type declarations

2.0.0 • Public • Published

passport-discord-token

Passport strategy for authenticating with Discord access tokens using the OAuth 2.0 API.

This module lets you authenticate using Discord in your Node.js applications using the Passport framework.

Installation

npm install passport-discord-token

or

yarn add passport-discord-token

Usage

Configure Strategy

The Discord authentication strategy authenticates users using a Discord account and OAuth 2.0 tokens. The strategy requires a verify callback to perform a look up of the user account given a verified OAuth 2.0 token.

JavaScript

const DiscordTokenStrategy = require('passport-discord-token');

passport.use(new DiscordTokenStrategy({
    clientID: DISCORD_APP_ID,
    clientSecret: DISCORD_APP_SECRET,
    apiVersion: "v8"
  }, function(accessToken, refreshToken, profile, done) {
    User.findOrCreate({discordId: profile.id}, function (error, user) {
      return done(error, user);
    });
  }
));

TypeScript

import { DiscordTokenStrategy } from "passport-discord-token";

passport.use(new DiscordTokenStrategy({
    clientID: DISCORD_APP_ID,
    clientSecret: DISCORD_APP_SECRET,
    apiVersion: "v8"
  }, function(accessToken, refreshToken, profile, done) {
    User.findOrCreate({discordId: profile.id}, function (error, user) {
      return done(error, user);
    });
  }
));

Authenticate Requests

Use passport.authenticate(), specifying discord-token as the strategy to authenticate requests.

app.post('/auth/discord/token',
  passport.authenticate('discord-token'),
  function (req, res) {
    // do something with req.user
    res.send(req.user? 200 : 401);
  }
);

Client Requests

Clients can send requests to routes that use the passport-discord-token strategy using query params. Clients must transmit the code parameter that is received after Discord login. Clients may also optionally transmit a state parameter.

GET /auth/discord/token?code=<TOKEN_HERE>&state=<STATE_HERE>

Readme

Keywords

none

Package Sidebar

Install

npm i @acceleratxr/passport-discord-token

Weekly Downloads

1

Version

2.0.0

License

MIT

Unpacked Size

15.6 kB

Total Files

8

Last publish

Collaborators

  • acceleratxr