Skip to content

Instantly share code, notes, and snippets.

@simenbrekken
Created March 13, 2013 12:47
Show Gist options
  • Save simenbrekken/5151751 to your computer and use it in GitHub Desktop.
Save simenbrekken/5151751 to your computer and use it in GitHub Desktop.
Easier Firebase authentication with jQuery Deferred
var db = new Firebase('https://demo.firebaseio.com')
var authenticate = (function(db) {
var loggedIn,
deferred = $.Deferred()
var client = new FirebaseAuthClient(db, function(err, user) {
loggedIn = !!user
if (err) {
deferred.reject(err)
} else if (user) {
deferred.resolve(user)
}
})
return function(provider, options) {
if (!loggedIn) client.login(provider, options)
return deferred
}
})(db)
authenticate('facebook').done(function(user) {
console.log('Logged in as:', user)
}).fail(function(err) {
console.log('Error:', err)
})
@pbergner
Copy link

pbergner commented Aug 8, 2013

Nice! So in the angular world would the authenticate definition live in a factory and it'd be accessible from any controller where the factory was a dependency (like the call on line 24)? If so, would there also be a way to confirm they're logged in or would that require a separate factory?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment