Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
@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!
The npm package @d-fischer/passport-twitch receives a total of 290 weekly downloads. As such, @d-fischer/passport-twitch popularity was classified as not popular.
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.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.