Research
Recent Trends in Malicious Packages Targeting Discord
The Socket research team breaks down a sampling of malicious packages that download and execute files, among other suspicious behaviors, targeting the popular Discord platform.
@d-fischer/passport-twitch
Advanced tools
Readme
Twitch is a trademark or registered trademark of Twitch Interactive, Inc. in the U.S. and/or other countries. "passport-twitch" is not operated by, sponsored by, or affiliated with Twitch Interactive, Inc. in any way.
Passport strategy for authenticating with Twitch using OAuth 2.0 on Helix (the New Twitch API).
It supports the OAuth changes Twitch implemented in April 2020!
This module lets you authenticate using Twitch in your Node.js applications. By plugging into Passport, Twitch authentication can be easily and unobtrusively integrated into any application or framework that supports Connect-style middleware, including Express and Koa.
$ npm install @d-fischer/passport-twitch
The Twitch OAuth 2.0 authentication strategy authenticates users using a Twitch
account and OAuth 2.0 tokens. The strategy requires a verify
callback, which
accepts these credentials and calls done
providing a user, as well as
options
specifying a client ID, client secret, and callback URL.
var passport = require("passport");
var twitchStrategy = require("@d-fischer/passport-twitch").Strategy;
passport.use(new twitchStrategy({
clientID: TWITCH_CLIENT_ID,
clientSecret: TWITCH_CLIENT_SECRET,
callbackURL: "http://127.0.0.1:3000/auth/twitch/callback",
scope: "user_read"
},
function(accessToken, refreshToken, profile, done) {
User.findOrCreate({ twitchId: profile.id }, function (err, user) {
return done(err, user);
});
}
));
Use passport.authenticate()
, specifying the "twitch"
strategy, to
authenticate requests.
For example, as route middleware in an Express application:
app.get("/auth/twitch", passport.authenticate("twitch"));
app.get("/auth/twitch/callback", passport.authenticate("twitch", { failureRedirect: "/" }), function(req, res) {
// Successful authentication, redirect home.
res.redirect("/");
});
Optionally, the forceVerify
option can be set to true
to indicate
that the user should be re-prompted for authorization:
app.get("/auth/twitch", passport.authenticate("twitch", {forceVerify: true}));
var express = require("express");
var bodyParser = require("body-parser");
var cookieParser = require("cookie-parser");
var cookieSession = require("cookie-session");
var passport = require("passport");
var twitchStrategy = require("passport-twitch").Strategy;
var app = express();
app.set("views", "./views");
app.set("view engine", "ejs");
// Middlewares
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cookieParser());
app.use(cookieSession({secret:"somesecrettokenhere"}));
app.use(passport.initialize());
app.use(express.static("./public"));
passport.use(new twitchStrategy({
clientID: "098f6bcd4621d373cade4e832627b4f6",
clientSecret: "4eb20288afaed97e82bde371260db8d8",
callbackURL: "http://127.0.0.1:3000/auth/twitch/callback",
scope: "user_read"
},
function(accessToken, refreshToken, profile, done) {
// Suppose we are using mongo..
User.findOrCreate({ twitchId: profile.id }, function (err, user) {
return done(err, user);
});
}
));
passport.serializeUser(function(user, done) {
done(null, user);
});
passport.deserializeUser(function(user, done) {
done(null, user);
});
app.get("/", function (req, res) {
res.render("index");
});
app.get("/auth/twitch", passport.authenticate("twitch"));
app.get("/auth/twitch/callback", passport.authenticate("twitch", { failureRedirect: "/" }), function(req, res) {
// Successful authentication, redirect home.
res.redirect("/");
});
app.listen(3000);
The MIT License (MIT)
Full text in LICENSE file
FAQs
Twitch authentication strategy using Helix for Passport. Supports the April 2020 Twitch changes!
We found that @d-fischer/passport-twitch demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
The Socket research team breaks down a sampling of malicious packages that download and execute files, among other suspicious behaviors, targeting the popular Discord platform.
Security News
Socket CEO Feross Aboukhadijeh joins a16z partners to discuss how modern, sophisticated supply chain attacks require AI-driven defenses and explore the challenges and solutions in leveraging AI for threat detection early in the development life cycle.
Security News
NIST's new AI Risk Management Framework aims to enhance the security and reliability of generative AI systems and address the unique challenges of malicious AI exploits.