New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

everyauth

Package Overview
Dependencies
Maintainers
0
Versions
59
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

everyauth - npm Package Compare versions

Comparing version 0.2.13 to 0.2.14

example/debug.log

4

example/conf.js

@@ -46,2 +46,6 @@ module.exports = {

}
, vimeo: {
consumerKey: 'Enter your consumer key here'
, consumerSecret: 'Enter your consumer secret here'
}
, box: {

@@ -48,0 +52,0 @@ apiKey: '5hl66lbfy0quj8qhhzcn57dflb55y4rg'

67

example/server.js

@@ -7,2 +7,19 @@ var express = require('express')

var usersById = {};
var nextUserId = 0;
function addUser (source, sourceUser) {
var user;
if (arguments.length === 1) { // password-based
user = sourceUser = source;
user.id = ++nextUserId;
return usersById[nextUserId] = user;
} else { // non-password-based
user = usersById[++nextUserId] = {id: nextUserId};
user[source] = sourceUser;
}
return user;
}
var usersByVimeoId = {};
var usersByJustintvId = {};

@@ -23,8 +40,10 @@ var usersByDropboxId = {};

var usersByLogin = {
'brian': {
login: 'brian'
, password: 'password'
}
'brian@example.com': addUser({ login: 'brian@example.com', password: 'password'})
};
everyauth.everymodule
.findUserById( function (id, callback) {
callback(null, usersById[id]);
});
everyauth

@@ -35,3 +54,3 @@ .openid

return usersByOpenId[userMetadata.claimedIdentifier] ||
(usersByOpenId[userMetadata.claimedIdentifier] = userMetadata);
(usersByOpenId[userMetadata.claimedIdentifier] = addUser('openid', userMetadata));
})

@@ -47,3 +66,3 @@ .redirectPath('/');

return usersByFbId[fbUserMetadata.id] ||
(usersByFbId[fbUserMetadata.id] = fbUserMetadata);
(usersByFbId[fbUserMetadata.id] = addUser('facebook', fbUserMetadata));
})

@@ -58,3 +77,3 @@ .redirectPath('/');

.findOrCreateUser( function (sess, accessToken, accessSecret, twitUser) {
return usersByTwitId[twitUser.id] || (usersByTwitId[twitUser.id] = twitUser);
return usersByTwitId[twitUser.id] || (usersByTwitId[twitUser.id] = addUser('twitter', twitUser));
})

@@ -120,3 +139,3 @@ .redirectPath('/');

var login = newUserAttrs[this.loginKey()];
return usersByLogin[login] = newUserAttrs;
return usersByLogin[login] = addUser(newUserAttrs);
})

@@ -132,3 +151,3 @@

.findOrCreateUser( function (sess, accessToken, accessTokenExtra, ghUser) {
return usersByGhId[ghUser.id] || (usersByGhId[ghUser.id] = ghUser);
return usersByGhId[ghUser.id] || (usersByGhId[ghUser.id] = addUser('github', ghUser));
})

@@ -141,4 +160,5 @@ .redirectPath('/');

.appSecret(conf.instagram.clientSecret)
.scope('basic')
.findOrCreateUser( function (sess, accessToken, accessTokenExtra, hipster) {
return usersByInstagramId[hipster.id] || (usersByInstagramId[hipster.id] = hipster);
return usersByInstagramId[hipster.id] || (usersByInstagramId[hipster.id] = addUser('instagram', hipster));
})

@@ -152,3 +172,3 @@ .redirectPath('/');

.findOrCreateUser( function (sess, accessTok, accessTokExtra, addict) {
return usersByFoursquareId[addict.id] || (usersByFoursquareId[addict.id] = addict);
return usersByFoursquareId[addict.id] || (usersByFoursquareId[addict.id] = addUser('foursquare', addict));
})

@@ -162,3 +182,3 @@ .redirectPath('/');

.findOrCreateUser( function (sess, accessToken, accessSecret, linkedinUser) {
return usersByLinkedinId[linkedinUser.id] || (usersByLinkedinId[linkedinUser.id] = linkedinUser);
return usersByLinkedinId[linkedinUser.id] || (usersByLinkedinId[linkedinUser.id] = addUser('linkedin', linkedinUser));
})

@@ -175,3 +195,3 @@ .redirectPath('/');

googleUser.expiresIn = extra.expires_in;
return usersByGoogleId[googleUser.id] || (usersByGoogleId[googleUser.id] = googleUser);
return usersByGoogleId[googleUser.id] || (usersByGoogleId[googleUser.id] = addUser('google', googleUser));
})

@@ -185,3 +205,3 @@ .redirectPath('/');

.findOrCreateUser( function (sess, accessToken, accessSecret, yahooUser) {
return usersByYahooId[yahooUser.id] || (usersByYahooId[yahooUser.id] = yahooUser);
return usersByYahooId[yahooUser.id] || (usersByYahooId[yahooUser.id] = addUser('yahoo', yahooUser));
})

@@ -196,3 +216,3 @@ .redirectPath('/');

.findOrCreateUser( function(session, userAttributes) {
return usersByGoogleHybridId[userAttributes.claimedIdentifier] || (usersByGoogleHybridId[userAttributes.claimedIdentifier] = userAttributes);
return usersByGoogleHybridId[userAttributes.claimedIdentifier] || (usersByGoogleHybridId[userAttributes.claimedIdentifier] = addUser('googlehybrid', userAttributes));
})

@@ -206,3 +226,3 @@ .redirectPath('/')

.findOrCreateUser( function (sess, accessToken, accessSecret, reader) {
return usersByReadabilityId[reader.username] || (usersByReadabilityId[reader.username] = reader);
return usersByReadabilityId[reader.username] || (usersByReadabilityId[reader.username] = addUser('readability', reader));
})

@@ -218,6 +238,15 @@ .redirectPath('/');

return usersByDropboxId[dropboxUserMetadata.uid] ||
(usersByDropboxId[dropboxUserMetadata.uid] = dropboxUserMetadata);
(usersByDropboxId[dropboxUserMetadata.uid] = addUser('dropbox', dropboxUserMetadata));
})
.redirectPath('/')
everyauth.vimeo
.consumerKey(conf.vimeo.consumerKey)
.consumerSecret(conf.vimeo.consumerSecret)
.findOrCreateUser( function (sess, accessToken, accessSecret, vimeoUser) {
return usersByVimeoId[vimeoUser.id] ||
(usersByVimeoId[vimeoUser.id] = vimeoUser);
})
.redirectPath('/')
everyauth.justintv

@@ -228,3 +257,3 @@ .consumerKey(conf.justintv.consumerKey)

return usersByJustintvId[justintvUser.id] ||
(usersByJustintvId[justintvUser.id] = justintvUser);
(usersByJustintvId[justintvUser.id] = addUser('justintv', justintvUser));
})

@@ -237,3 +266,3 @@ .redirectPath('/')

return usersByBoxId[boxUser.user_id] ||
(usersByDropboxId[boxUser.user_id] = boxUser);
(usersByDropboxId[boxUser.user_id] = addUser('box', boxUser));
})

@@ -240,0 +269,0 @@ .redirectPath('/');

@@ -29,2 +29,3 @@ var everyModule = require('./everymodule')

})
.get('entryPath',

@@ -44,2 +45,3 @@ 'the link a user follows, whereupon you redirect them to the 3rd party OAuth provider dialog - e.g., "/auth/twitter"')

.promises(null)
.get('callbackPath',

@@ -51,2 +53,3 @@ 'the callback path that the 3rd party OAuth provider redirects to after an OAuth authorization result - e.g., "/auth/twitter/callback"')

.promises('requestToken verifier')
.canBreakTo('handleDuplicateCallbackRequest')
.step('getSession')

@@ -79,2 +82,10 @@ .accepts('req')

.promises(null)
.stepseq('handleDuplicateCallbackRequest',
'handles the case if you manually click the callback link on Twitter, but Twitter has already sent a redirect request to the callback path with the same token')
.step('waitForPriorRequestToWriteSession')
.accepts('req res')
.promises(null)
.step('sendResponse')
.getRequestToken( function (req, res) {

@@ -89,3 +100,5 @@

this.oauth.getOAuthRequestToken( function (err, token, tokenSecret, authUrl, params) {
if (err) return p.fail(err);
if (err && !~(err.data.indexOf('Invalid / expired Token'))) {
return p.fail(err);
}
p.fulfill(token, tokenSecret);

@@ -115,4 +128,19 @@ });

, requestToken = parsedUrl.query && parsedUrl.query.oauth_token
, verifier = parsedUrl.query && parsedUrl.query.oauth_verifier;
return [requestToken, verifier];
, verifier = parsedUrl.query && parsedUrl.query.oauth_verifier
, sess = req.session
, promise
, _auth = sess.auth || (sess.auth = {})
, mod = _auth[this.name] || (_auth[this.name] = {});
if ((mod.token === requestToken) && (mod.verifier === verifier)) {
return this.breakTo('handleDuplicateCallbackRequest', req, res);
}
promise = this.Promise();
mod.verifier = verifier;
sess.save( function (err) {
if (err) return promise.fail(err);
promise.fulfill(requestToken, verifier);
});
return promise;
})

@@ -128,3 +156,5 @@ .getSession( function(req) {

this.oauth.getOAuthAccessToken(reqToken, reqTokenSecret, verifier, function (err, accessToken, accessTokenSecret, params) {
if (err) return promise.fail(err);
if (err && !~(err.data.indexOf('Invalid / expired Token'))) {
return promise.fail(err);
}
promise.fulfill(accessToken, accessTokenSecret, params);

@@ -143,4 +173,5 @@ });

.addToSession( function (sess, auth) {
var _auth = sess.auth || (sess.auth = {})
, mod = _auth[this.name] || (_auth[this.name] = {});
var promise = this.Promise()
, _auth = sess.auth
, mod = _auth[this.name];
_auth.loggedIn = true;

@@ -152,4 +183,9 @@ _auth.userId || (_auth.userId = auth.user.id);

// this._super() ?
sess.save( function (err) {
if (err) return promise.fail(err);
promise.fulfill();
});
return promise;
})
.sendResponse( function (res) {
.sendResponse( function (res, data) {
var redirectTo = this.redirectPath();

@@ -160,2 +196,20 @@ if (!redirectTo)

res.end();
})
.waitForPriorRequestToWriteSession( function (req, res) {
var promise = this.Promise();
function check (self, sess, res, promise) {
if (sess.auth[self.name].accessToken) {
return promise.fulfill();
}
setTimeout(function () {
sess.reload( function (err) {
if (err) return promise.fail(err);
check(self, req.session, res, promise);
});
}, 100);
}
check(this, req.session, res, promise);
return promise;
});

@@ -162,0 +216,0 @@

@@ -5,4 +5,4 @@ var oauthModule = require('./oauth');

oauthModule.submodule('tumblr')
// .apiHost('https://api.twitter.com')
.oauthHost('https://www.tumblr.com')
.apiHost('http://www.twitter.com/api')
.oauthHost('http://www.tumblr.com')
.entryPath('/auth/tumblr')

@@ -12,3 +12,3 @@ .callbackPath('/auth/tumblr/callback')

var promise = this.Promise();
this.oauth.get(this.apiHost() + '/users/show.json?user_id=' + params.user_id, accessToken, accessTokenSecret, function (err, data) {
this.oauth.get(this.apiHost() + '/authenticate', accessToken, accessTokenSecret, function (err, data) {
if (err) return promise.fail(err);

@@ -19,2 +19,5 @@ var oauthUser = JSON.parse(data);

return promise;
})
.convertErr( function (data) {
return data.data;
});

@@ -17,2 +17,5 @@ var oauthModule = require('./oauth');

return promise;
})
.convertErr( function (data) {
return new Error(data.data.match(/<error>(.+)<\/error>/)[1]);
});
{
"name": "everyauth",
"description": "Auth solution (password, facebook, & more) for your node.js Connect & Express apps",
"version": "0.2.13",
"version": "0.2.14",
"homepage": "https://github.com/bnoguchi/everyauth/",

@@ -25,3 +25,4 @@ "repository": {

"express": ">=2.3.10",
"jade": ">=0.12.1"
"jade": ">=0.12.1",
"tobi": ">=0.2.2"
},

@@ -28,0 +29,0 @@ "engines": {

@@ -18,2 +18,3 @@ everyauth

- `justin.tv` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Credits [slickplaid](https://github.com/slickplaid))
- `vimeo` &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Credits [slickplaid](https://github.com/slickplaid))
- OAuth2

@@ -103,2 +104,10 @@ - `facebook`

## Tests
First, spin up the example server (See last section "Example Application").
Then,
$ make test
## Logging Out

@@ -1022,2 +1031,58 @@

## Setting up Vimeo OAuth
You will first need to sign up for a [developer application](http://vimeo.com/api/applications) to get the consumer key and secret.
```javascript
var everyauth = require('everyauth')
, connect = require('connect');
everyauth.vimeo
.consumerKey('YOUR CONSUMER KEY HERE')
.consumerSecret('YOUR CONSUMER SECRET HERE')
.findOrCreateUser( function (sess, accessToken, accessSecret, user) {
// find or create user logic goes here
//
// e.g.,
// return usersByVimeoId[user.id] || (usersByVimeoId[user.id] = user);
})
.redirectPath('/');
var routes = function (app) {
// Define your routes here
};
connect(
connect.bodyParser()
, connect.cookieParser()
, connect.session({secret: 'whodunnit'})
, everyauth.middleware()
, connect.router(routes);
).listen(3000);
```
You can also configure more parameters (most are set to defaults) via
the same chainable API:
```javascript
everyauth.vimeo
.entryPath('/auth/vimeo')
.callbackPath('/auth/vimeo/callback');
```
If you want to see what the current value of a
configured parameter is, you can do so via:
```javascript
everyauth.vimeo.callbackPath(); // '/auth/vimeo/callback'
everyauth.vimeo.entryPath(); // '/auth/vimeo'
```
To see all parameters that are configurable, the following will return an
object whose parameter name keys map to description values:
```javascript
everyauth.vimeo.configurable();
```
## Setting up OpenID protocol

@@ -1494,2 +1559,3 @@

- Justin.tv
- Vimeo

@@ -1496,0 +1562,0 @@ ### MIT License

@@ -0,1 +1,3 @@

- http://twitter.com/chrismatthieu/statuses/86813759934435328
- http://twitter.com/sim_en/statuses/85278793534668800
- http://twitter.com/sveisvei/statuses/84693437999353856

@@ -2,0 +4,0 @@ - http://twitter.com/c_t_montgomery/statuses/84418059212816385

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc