Merge pull request #842 from Gym/fb-enhancements

Facebook authentication
This commit is contained in:
Liran Tal
2015-08-25 16:14:06 +03:00
3 changed files with 29 additions and 4 deletions

View File

@@ -7,7 +7,7 @@
"bitwise": false, // Prohibit bitwise operators (&, |, ^, etc.).
"curly": false, // Require {} for every new block or scope.
"eqeqeq": true, // Require triple equals i.e. `===`.
"latedef": true, // Prohibit variable use before definition.
"latedef": "nofunc", // Prohibit variable use before definition.
"noarg": true, // Prohibit use of `arguments.caller` and `arguments.callee`.
"undef": true, // Require all non-global variables be declared before they are used.
"unused": false, // Warn unused variables.

View File

@@ -51,8 +51,20 @@ angular.module(ApplicationConfiguration.applicationModuleName).run(function ($ro
//Then define the init function for starting up the application
angular.element(document).ready(function () {
//Fixing facebook bug with redirect
if (window.location.hash === '#_=_') {
window.location.hash = '#!';
if (window.location.hash && window.location.hash === '#_=_') {
if (window.history && history.pushState) {
window.history.pushState('', document.title, window.location.pathname);
} else {
// Prevent scrolling by storing the page's current scroll offset
var scroll = {
top: document.body.scrollTop,
left: document.body.scrollLeft
};
window.location.hash = '';
// Restore the scroll offset, should be flicker free
document.body.scrollTop = scroll.top;
document.body.scrollLeft = scroll.left;
}
}
//Then init the app

View File

@@ -27,7 +27,8 @@ module.exports = function (config) {
firstName: profile.name.givenName,
lastName: profile.name.familyName,
displayName: profile.displayName,
email: profile.emails[0].value,
email: profile.emails ? profile.emails[0].value : undefined,
username: profile.username || generateUsername(profile),
profileImageURL: (profile.id) ? '//graph.facebook.com/' + profile.id + '/picture?type=large' : undefined,
provider: 'facebook',
providerIdentifierField: 'id',
@@ -36,6 +37,18 @@ module.exports = function (config) {
// Save the user OAuth profile
users.saveOAuthUserProfile(req, providerUserProfile, done);
function generateUsername(profile) {
var username = '';
if (profile.emails) {
username = profile.emails[0].value.split('@')[0];
} else if (profile.name) {
username = profile.name.givenName[0] + profile.name.familyName;
}
return username.toLowerCase() || undefined;
}
}
));
};