Passport strategy for authenticating with Twitter API v2
npm install passport-twitter-2
import { Strategy as TwitterStrategy } from 'passport-twitter-2';
passport.use(new TwitterStrategy({
clientID: TWITTER_CLIENT_ID,
appKey: TWITTER_CLIENT_SECRET,
callbackURL: "http://localhost:3000/auth/twitter/callback"
},
function(accessToken, profile, done) {
User.findOrCreate({ twitter: profile.id }, function (err, user) {
return done(err, user);
});
}
));
Use passport.authenticate()
, specifying the 'twitter'
strategy, to
authenticate requests.
For example, as route middleware in an Express application:
app.get('/auth/twitter',
passport.authenticate('twitter'));
app.get('/auth/twitter/callback',
passport.authenticate('twitter', { failureRedirect: '/login' }),
function(req, res) {
// Successful authentication, redirect home.
res.redirect('/');
});
For Node.js 18+ you can skip installing node-fetch with
npm i passport-twitter-2 --omit=optional
and use built-in fetch instead.
Copyright (c) 2022 Ēriks Remess