Skip to content

Commit

Permalink
show a message to the user on facebook login error Closes #1001
Browse files Browse the repository at this point in the history
  • Loading branch information
mjlescano committed Aug 7, 2015
1 parent 43aeb5d commit c246fdb
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 18 deletions.
3 changes: 2 additions & 1 deletion lib/auth-facebook/component.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
"dependencies": {
"visionmedia/page.js": "1.3.7",
"component/t": "1.0.0",
"component/classes": "1.2.0"
"component/classes": "1.2.0",
"component/cookie": "^1.1.1"
},
"locals": [
"view",
Expand Down
10 changes: 9 additions & 1 deletion lib/auth-facebook/form.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
var config = require('config');
var t = require('t');
var cookie = require('cookie');
var title = require('title');
var View = require('view');
var template = require('./template');
Expand All @@ -8,8 +9,15 @@ var classes = require('classes');
module.exports = function form (ctx, next) {
if (!config.facebookSignin) return next();

var flashMessage = cookie('flash-message');

if (flashMessage) {
flashMessage = JSON.parse(flashMessage);
cookie('flash-message', null);
}

// Build signin view with options
var view = new View(template);
var view = new View(template, { flashMessage: flashMessage });

// Display section content
classes(document.body).add('auth-facebook-form-page');
Expand Down
32 changes: 17 additions & 15 deletions lib/auth-facebook/routes.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,22 +20,24 @@ var app = module.exports = express();
* Facebook Auth routes
*/

app.get('/auth/facebook',
passport.authenticate('facebook', {
scope: config.auth.facebook.permissions
})
);

app.get('/auth/facebook/callback',
passport.authenticate('facebook', { failureRedirect: '/' }),
function(req, res) {
// After successful authentication
// redirect to homepage.
log('Log in user %s', req.user.id);
jwt.setUserOnCookie(req.user, res);
app.get('/auth/facebook', passport.authenticate('facebook', {
scope: config.auth.facebook.permissions
}));

app.get('/auth/facebook/callback', function(req, res, next) {
passport.authenticate('facebook', function(err, user, message) {
if (err) return next(err);

if (!user) {
if (message) res.cookie('flash-message', JSON.stringify(message));
return res.redirect('/signin');
}

log('Log in user %s', user.id);
jwt.setUserOnCookie(user, res);
return res.redirect('/');
}
);
})(req, res, next);
});

app.post('/auth/facebook/deauthorize', function(req, res) {
log('Parsing call to "/auth/facebook/deauthorize".');
Expand Down
3 changes: 2 additions & 1 deletion lib/auth-facebook/strategy.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ var passport = require('passport');
var FacebookStrategy = require('passport-facebook').Strategy;
var User = require('lib/models').User;
var utils = require('lib/utils');
var t = require('t-component');

/**
* Register Facebook Strategy
Expand All @@ -22,7 +23,7 @@ module.exports = function() {

if (!user) {
if (!profile.emails) {
return done(new Error(t('signup.facebook.need-email-error')));
return done(null, false, { message: t('signup.facebook.need-email-error') });
}
return signup(profile, accessToken, done);
}
Expand Down
2 changes: 2 additions & 0 deletions lib/auth-facebook/template.jade
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
i.icon-signin
h1= t('signin.login-to') + ' ' + t('common.app-name')
form(action="/auth/facebook", method="get", role="form")
- if (flashMessage)
p= flashMessage.message
button.btn-facebook(type="submit")
span.flaticon.social.facebook
= t('signin.login-with-facebook')
Expand Down

0 comments on commit c246fdb

Please sign in to comment.