https://github.com/jaredhanson/passport-twitter
Twitter authentication strategy for Passport and Node.js.
https://github.com/jaredhanson/passport-twitter
oauth passport twitter
Last synced: 5 months ago
JSON representation
Twitter authentication strategy for Passport and Node.js.
- Host: GitHub
- URL: https://github.com/jaredhanson/passport-twitter
- Owner: jaredhanson
- License: mit
- Created: 2011-10-10T06:56:40.000Z (almost 14 years ago)
- Default Branch: master
- Last Pushed: 2024-11-23T03:07:16.000Z (11 months ago)
- Last Synced: 2025-05-13T01:45:50.772Z (5 months ago)
- Topics: oauth, passport, twitter
- Language: JavaScript
- Homepage: https://www.passportjs.org/packages/passport-twitter/?utm_source=github&utm_medium=referral&utm_campaign=passport-twitter&utm_content=about
- Size: 136 KB
- Stars: 468
- Watchers: 13
- Forks: 130
- Open Issues: 33
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# passport-twitter
[Passport](https://www.passportjs.org/) strategy for authenticating with
[Twitter](https://www.passportjs.org/features/twitter/) using [OAuth 1.0a](https://www.passportjs.org/features/oauth/).This module lets you authenticate using Twitter in your Node.js applications.
By plugging into Passport, Twitter authentication can be easily and
unobtrusively integrated into any application or framework that supports
[Connect](https://github.com/senchalabs/connect#readme)-style middleware,
including [Express](https://expressjs.com/).:brain: [Understanding OAuth 1.0](https://www.passportjs.org/concepts/oauth/?utm_source=github&utm_medium=referral&utm_campaign=passport-twitter&utm_content=nav-concept) •
:heart: [Sponsors](https://www.passportjs.org/sponsors/?utm_source=github&utm_medium=referral&utm_campaign=passport-twitter&utm_content=nav-sponsors)---
Advertisement
The Complete Node.js Developer Course
Learn Node. js by building real-world applications with Node, Express, MongoDB, Jest, and more!---
## Install
```bash
$ npm install passport-twitter
```## Usage
#### Create an Application
Before using `passport-twitter`, you must register an application with Twitter.
If you have not already done so, a new application can be created at
[Twitter Application Management](https://apps.twitter.com/). Your application
will be issued a consumer key (API Key) and consumer secret (API Secret), which
need to be provided to the strategy. You will also need to configure a callback
URL which matches the route in your application.#### Configure Strategy
The Twitter authentication strategy authenticates users using a Twitter account
and OAuth tokens. The consumer key and consumer secret obtained when creating
an application are supplied as options when creating the strategy. The strategy
also requires a `verify` callback, which receives the access token and
corresponding secret as arguments, as well as `profile` which contains the
authenticated user's Twitter profile. The `verify` callback must call `cb`
providing a user to complete authentication.```javascript
passport.use(new TwitterStrategy({
consumerKey: TWITTER_CONSUMER_KEY,
consumerSecret: TWITTER_CONSUMER_SECRET,
callbackURL: "http://127.0.0.1:3000/auth/twitter/callback"
},
function(token, tokenSecret, profile, cb) {
User.findOrCreate({ twitterId: profile.id }, function (err, user) {
return cb(err, user);
});
}
));
```#### Authenticate Requests
Use `passport.authenticate()`, specifying the `'twitter'` strategy, to
authenticate requests.For example, as route middleware in an [Express](http://expressjs.com/)
application:```javascript
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('/');
});
```## Examples
Developers using the popular [Express](http://expressjs.com/) web framework can
refer to an [example](https://github.com/passport/express-4.x-twitter-example)
as a starting point for their own web applications.## Authors
- [Jared Hanson](https://www.jaredhanson.me/) { [](https://www.jaredhanson.me/) [](https://www.facebook.com/jaredhanson) [](https://www.linkedin.com/in/jaredhanson) [](https://twitter.com/jaredhanson) [](https://github.com/jaredhanson) }
## License
[The MIT License](http://opensource.org/licenses/MIT)
Copyright (c) 2011-2023 Jared Hanson