diff --git a/lib/passport-youtube/strategy.js b/lib/passport-youtube/strategy.js index 7d297f1..c9ef914 100644 --- a/lib/passport-youtube/strategy.js +++ b/lib/passport-youtube/strategy.js @@ -4,8 +4,8 @@ var util = require('util') , OAuth2Strategy = require('passport-oauth').OAuth2Strategy , InternalOAuthError = require('passport-oauth').InternalOAuthError; - - + + /** * `Strategy` constructor. * @@ -20,17 +20,17 @@ function Strategy(options, verify) { options.authorizationURL = options.authorizationURL || 'https://accounts.google.com/o/oauth2/auth'; options.tokenURL = options.tokenURL || 'https://accounts.google.com/o/oauth2/token'; options.scopeSeparator = options.scopeSeparator || ','; - + OAuth2Strategy.call(this, options, verify); this.name = 'youtube'; this._profileURL = options.profileURL || 'https://gdata.youtube.com/feeds/api/users/default?alt=json'; } - + /** * Inherit from `OAuth2Strategy`. */ util.inherits(Strategy, OAuth2Strategy); - + /** * Retrieve user profile from Youtube. * @@ -49,33 +49,33 @@ util.inherits(Strategy, OAuth2Strategy); */ Strategy.prototype.userProfile = function(accessToken, done) { var url = this._profileURL; - + this._oauth2.getProtectedResource(url, accessToken, function (err, body, res) { - + if (err) { return done(new InternalOAuthError('failed to fetch user profile', err)); } - + try { var json = JSON.parse(body); - + var youtubeProfile = json.entry; - + var profile = { provider: 'youtube' }; profile.id = youtubeProfile["yt$googlePlusUserId"]["$t"]; profile.username = youtubeProfile["yt$username"]["$t"]; profile.displayName = youtubeProfile["title"]["$t"]; profile.name = { familyName: youtubeProfile["yt$lastName"]["$t"], givenName: youtubeProfile["yt$firstName"]["$t"]}; - + profile._raw = body; profile._json = json; - + done(null, profile); } catch(e) { done(e); } }); } - + Strategy.prototype._convertProfileFields = function(profileFields) { var map = { 'id': 'id', @@ -83,23 +83,23 @@ Strategy.prototype._convertProfileFields = function(profileFields) { 'displayName': 'name', 'name': ['last_name', 'first_name'] }; - + var fields = []; - + profileFields.forEach(function(f) { if (typeof map[f] === 'undefined') return; - + if (Array.isArray(map[f])) { Array.prototype.push.apply(fields, map[f]); } else { fields.push(map[f]); } }); - + return fields.join(','); } - + /** * Expose `Strategy`. */ -module.exports = Strategy; +module.exports = Strategy; \ No newline at end of file diff --git a/package.json b/package.json index af566d7..61ff1fa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "passport-youtube", - "version": "0.0.4", + "version": "0.0.2", "description": "Youtube OAuth2 authentication strategy for Passport. Based on the passport-facebook module", "keywords": [ "passport", @@ -30,7 +30,7 @@ "main": "./lib/passport-youtube", "dependencies": { "pkginfo": "0.2.x", - "passport-oauth": "~0.1.2" + "passport-oauth": "0.1.14" }, "devDependencies": {}, "scripts": {}, @@ -38,6 +38,6 @@ "node": ">= 0.8.0" }, "readme": "passport-youtube\n================\n\nYoutube strategy for passport", - "_id": "passport-youtube@0.0.3", - "_from": "passport-youtube@" + "_id": "passport-youtube@0.0.2", + "_from": "passport-youtube@0.0.2" }