feathers-authentication
Advanced tools
Comparing version 0.3.4 to 0.3.5
@@ -32,2 +32,3 @@ 'use strict'; | ||
var Strategy = options.strategy; | ||
var TokenStrategy = options.tokenStrategy; | ||
@@ -41,3 +42,9 @@ // Initialize our service with any options it requires | ||
// Register our Passport auth strategy and get it to use our passport callback function | ||
debug('registering passport-' + options.provider + ' OAuth2 strategy', options); | ||
_passport2.default.use(new Strategy(options, service.oauthCallback.bind(service))); | ||
if (TokenStrategy) { | ||
debug('registering passport-' + options.provider + '-token OAuth2 strategy', options); | ||
_passport2.default.use(new TokenStrategy(options, service.oauthCallback.bind(service))); | ||
} | ||
}; | ||
@@ -94,4 +101,2 @@ }; | ||
// console.log('Authenticating', accessToken, refreshToken, profile); | ||
// Find or create the user since they could have signed up via facebook. | ||
@@ -130,3 +135,3 @@ app.service(options.userEndpoint).find(params).then(function (users) { | ||
// Authenticate via your provider. This will redirect you to authorize the application. | ||
var authOptions = Object.assign({ session: false }, this.options.permissions); | ||
var authOptions = Object.assign({ session: false, state: true }, this.options.permissions); | ||
return _passport2.default.authenticate(this.options.provider, authOptions)(params.req, params.res); | ||
@@ -141,3 +146,3 @@ } | ||
var options = this.options; | ||
var authOptions = Object.assign({ session: false }, options.permissions); | ||
var authOptions = Object.assign({ session: false, state: true }, options.permissions); | ||
var app = this.app; | ||
@@ -176,36 +181,41 @@ | ||
// // POST /auth/facebook /auth/facebook:: | ||
// create(data, params) { | ||
// // TODO (EK): This should be for token based auth | ||
// const options = this.options; | ||
// POST /auth/facebook /auth/facebook::create | ||
// This is for mobile token based authentication | ||
// // Authenticate via facebook, then generate a JWT and return it | ||
// return new Promise(function(resolve, reject){ | ||
// let middleware = passport.authenticate('facebook-token', { session: false }, function(error, user) { | ||
// if (error) { | ||
// return reject(error); | ||
// } | ||
}, { | ||
key: 'create', | ||
value: function create(data, params) { | ||
var options = this.options; | ||
var authOptions = Object.assign({ session: false, state: true }, options.permissions); | ||
var app = this.app; | ||
// // Login failed. | ||
// if (!user) { | ||
// return reject(new errors.NotAuthenticated(options.loginError)); | ||
// } | ||
if (!options.tokenStrategy) { | ||
return Promise.reject(new _feathersErrors2.default.MethodNotAllowed()); | ||
} | ||
// // Login was successful. Generate and send token. | ||
// user = Object.assign({}, user = !user.toJSON ? user : user.toJSON()); | ||
// delete user[options.passwordField]; | ||
// Authenticate via facebook, then generate a JWT and return it | ||
return new Promise(function (resolve, reject) { | ||
var middleware = _passport2.default.authenticate(options.provider + '-token', authOptions, function (error, user) { | ||
if (error) { | ||
return reject(error); | ||
} | ||
// // TODO (EK): call this.app.service('/auth/token').create() instead | ||
// const token = jwt.sign(user, options.secret, options); | ||
// Login failed. | ||
if (!user) { | ||
return reject(new _feathersErrors2.default.NotAuthenticated('An error occurred logging in with ' + options.provider)); | ||
} | ||
// return resolve({ | ||
// token: token, | ||
// data: user | ||
// }); | ||
// }); | ||
// Login was successful. Clean up the user object for the response. | ||
// TODO (EK): Maybe the id field should be configurable | ||
var payload = { | ||
id: user.id !== undefined ? user.id : user._id | ||
}; | ||
// middleware(params.req); | ||
// }); | ||
// } | ||
// Get a new JWT and the associated user from the Auth token service and send it back to the client. | ||
return app.service(options.tokenEndpoint).create(payload, { internal: true }).then(resolve).catch(reject); | ||
}); | ||
middleware(params.req, params.res); | ||
}); | ||
} | ||
}, { | ||
@@ -212,0 +222,0 @@ key: 'setup', |
{ | ||
"name": "feathers-authentication", | ||
"description": "Add Authentication to your FeathersJS app.", | ||
"version": "0.3.4", | ||
"version": "0.3.5", | ||
"homepage": "https://github.com/feathersjs/feathers-authentication", | ||
@@ -6,0 +6,0 @@ "main": "lib/", |
233383
4799