From 3dcf45c55ad36d478dac1453bb9688e618289232 Mon Sep 17 00:00:00 2001 From: anooprh Date: Fri, 1 Aug 2014 02:23:00 -0400 Subject: [PATCH] Added github signin/signup to the list of signups/signi's --- config/env/development.js | 9 +- config/env/production.js | 9 +- config/env/test.js | 9 +- config/strategies/github.js | 42 ++++++ package.json | 137 +++++++++--------- public/modules/users/img/buttons/github.png | Bin 0 -> 9809 bytes .../users/views/signin.client.view.html | 6 +- .../users/views/signup.client.view.html | 6 +- 8 files changed, 142 insertions(+), 76 deletions(-) create mode 100644 config/strategies/github.js create mode 100644 public/modules/users/img/buttons/github.png diff --git a/config/env/development.js b/config/env/development.js index 17470972f2..8596e6e0bb 100644 --- a/config/env/development.js +++ b/config/env/development.js @@ -24,5 +24,10 @@ module.exports = { clientID: process.env.LINKEDIN_ID || 'APP_ID', clientSecret: process.env.LINKEDIN_SECRET || 'APP_SECRET', callbackURL: 'http://localhost:3000/auth/linkedin/callback' - } -}; \ No newline at end of file + }, + github: { + clientID: process.env.GITHUB_ID || 'APP_ID', + clientSecret: process.env.GITHUB_SECRET || 'APP_SECRET', + callbackURL: 'http://localhost:3000/auth/github/callback' + } +}; diff --git a/config/env/production.js b/config/env/production.js index 26c97d775d..110bf7d4b1 100644 --- a/config/env/production.js +++ b/config/env/production.js @@ -39,5 +39,10 @@ module.exports = { clientID: process.env.LINKEDIN_ID || 'APP_ID', clientSecret: process.env.LINKEDIN_SECRET || 'APP_SECRET', callbackURL: 'http://localhost:3000/auth/linkedin/callback' - } -}; \ No newline at end of file + }, + github: { + clientID: process.env.GITHUB_ID || 'APP_ID', + clientSecret: process.env.GITHUB_SECRET || 'APP_SECRET', + callbackURL: 'http://localhost:3000/auth/github/callback' + } +}; diff --git a/config/env/test.js b/config/env/test.js index cc3f0aa4c4..baef3f7d64 100644 --- a/config/env/test.js +++ b/config/env/test.js @@ -25,5 +25,10 @@ module.exports = { clientID: process.env.LINKEDIN_ID || 'APP_ID', clientSecret: process.env.LINKEDIN_SECRET || 'APP_SECRET', callbackURL: 'http://localhost:3000/auth/linkedin/callback' - } -}; \ No newline at end of file + }, + github: { + clientID: process.env.GITHUB_ID || 'APP_ID', + clientSecret: process.env.GITHUB_SECRET || 'APP_SECRET', + callbackURL: 'http://localhost:3000/auth/github/callback' + } +}; diff --git a/config/strategies/github.js b/config/strategies/github.js new file mode 100644 index 0000000000..77193bd6f7 --- /dev/null +++ b/config/strategies/github.js @@ -0,0 +1,42 @@ +'use strict'; + +/** + * Module dependencies. + */ +var passport = require('passport'), + url = require('url'), + GithubStrategy = require('passport-github').Strategy, + config = require('../config'), + users = require('../../app/controllers/users'); + +module.exports = function() { + // Use github strategy + passport.use(new GithubStrategy({ + clientID: config.github.clientID, + clientSecret: config.github.clientSecret, + callbackURL: config.github.callbackURL, + passReqToCallback: true + }, + function(req, accessToken, refreshToken, profile, done) { + // Set the provider data and include tokens + var providerData = profile._json; + providerData.accessToken = accessToken; + providerData.refreshToken = refreshToken; + + // Create the user OAuth profile + var providerUserProfile = { + firstName: profile.name.givenName, + lastName: profile.name.familyName, + displayName: profile.displayName, + email: profile.emails[0].value, + username: profile.username, + provider: 'github', + providerIdentifierField: 'id', + providerData: providerData + }; + + // Save the user OAuth profile + users.saveOAuthUserProfile(req, providerUserProfile, done); + } + )); +}; \ No newline at end of file diff --git a/package.json b/package.json index cd9eacc6af..f96511f730 100755 --- a/package.json +++ b/package.json @@ -1,69 +1,70 @@ { - "name": "meanjs", - "description": "Full-Stack JavaScript with MongoDB, Express, AngularJS, and Node.js.", - "version": "0.3.1", - "private": false, - "author": "https://github.com/meanjs/mean/graphs/contributors", - "repository": { - "type": "git", - "url": "https://github.com/meanjs/mean.git" - }, - "engines": { - "node": "0.10.x", - "npm": "1.4.x" - }, - "scripts": { - "start": "grunt", - "test": "grunt test", - "postinstall": "bower install --config.interactive=false" - }, - "dependencies": { - "express": "~4.2.0", - "express-session": "~1.1.0", - "body-parser": "~1.2.0", - "cookie-parser": "~1.1.0", - "compression": "~1.0.1", - "method-override": "~1.0.0", - "morgan": "~1.1.0", - "connect-mongo": "~0.4.0", - "connect-flash": "~0.1.1", - "helmet": "~0.2.1", - "consolidate": "~0.10.0", - "swig": "~1.3.2", - "mongoose": "~3.8.8", - "passport": "~0.2.0", - "passport-local": "~1.0.0", - "passport-facebook": "~1.0.2", - "passport-twitter": "~1.0.2", - "passport-linkedin": "~0.1.3", - "passport-google-oauth": "~0.1.5", - "lodash": "~2.4.1", - "forever": "~0.11.0", - "bower": "~1.3.1", - "grunt-cli": "~0.1.13", - "glob": "~3.2.9" - }, - "devDependencies": { - "supertest": "~0.12.1", - "should": "~3.3.1", - "grunt-env": "~0.4.1", - "grunt-node-inspector": "~0.1.3", - "grunt-contrib-watch": "~0.6.1", - "grunt-contrib-jshint": "~0.10.0", - "grunt-contrib-csslint": "^0.2.0", - "grunt-ngmin": "0.0.3", - "grunt-contrib-uglify": "~0.4.0", - "grunt-contrib-cssmin": "~0.9.0", - "grunt-nodemon": "~0.2.1", - "grunt-concurrent": "~0.5.0", - "grunt-mocha-test": "~0.10.0", - "grunt-karma": "~0.8.2", - "load-grunt-tasks": "~0.4.0", - "karma": "~0.12.0", - "karma-jasmine": "~0.2.1", - "karma-coverage": "~0.2.0", - "karma-chrome-launcher": "~0.1.2", - "karma-firefox-launcher": "~0.1.3", - "karma-phantomjs-launcher": "~0.1.2" - } -} \ No newline at end of file + "name": "meanjs", + "description": "Full-Stack JavaScript with MongoDB, Express, AngularJS, and Node.js.", + "version": "0.3.1", + "private": false, + "author": "https://github.com/meanjs/mean/graphs/contributors", + "repository": { + "type": "git", + "url": "https://github.com/meanjs/mean.git" + }, + "engines": { + "node": "0.10.x", + "npm": "1.4.x" + }, + "scripts": { + "start": "grunt", + "test": "grunt test", + "postinstall": "bower install --config.interactive=false" + }, + "dependencies": { + "body-parser": "~1.2.0", + "bower": "~1.3.1", + "compression": "~1.0.1", + "connect-flash": "~0.1.1", + "connect-mongo": "~0.4.0", + "consolidate": "~0.10.0", + "cookie-parser": "~1.1.0", + "express": "~4.2.0", + "express-session": "~1.1.0", + "forever": "~0.11.0", + "glob": "~3.2.9", + "grunt-cli": "~0.1.13", + "helmet": "~0.2.1", + "lodash": "~2.4.1", + "method-override": "~1.0.0", + "mongoose": "~3.8.8", + "morgan": "~1.1.0", + "passport": "~0.2.0", + "passport-facebook": "~1.0.2", + "passport-github": "^0.1.5", + "passport-google-oauth": "~0.1.5", + "passport-linkedin": "~0.1.3", + "passport-local": "~1.0.0", + "passport-twitter": "~1.0.2", + "swig": "~1.3.2" + }, + "devDependencies": { + "supertest": "~0.12.1", + "should": "~3.3.1", + "grunt-env": "~0.4.1", + "grunt-node-inspector": "~0.1.3", + "grunt-contrib-watch": "~0.6.1", + "grunt-contrib-jshint": "~0.10.0", + "grunt-contrib-csslint": "^0.2.0", + "grunt-ngmin": "0.0.3", + "grunt-contrib-uglify": "~0.4.0", + "grunt-contrib-cssmin": "~0.9.0", + "grunt-nodemon": "~0.2.1", + "grunt-concurrent": "~0.5.0", + "grunt-mocha-test": "~0.10.0", + "grunt-karma": "~0.8.2", + "load-grunt-tasks": "~0.4.0", + "karma": "~0.12.0", + "karma-jasmine": "~0.2.1", + "karma-coverage": "~0.2.0", + "karma-chrome-launcher": "~0.1.2", + "karma-firefox-launcher": "~0.1.3", + "karma-phantomjs-launcher": "~0.1.2" + } +} diff --git a/public/modules/users/img/buttons/github.png b/public/modules/users/img/buttons/github.png new file mode 100644 index 0000000000000000000000000000000000000000..37b77cbefe09953d737a5a7755ab4797bebaa61d GIT binary patch literal 9809 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 literal 0 HcmV?d00001 diff --git a/public/modules/users/views/signin.client.view.html b/public/modules/users/views/signin.client.view.html index 0ddb6e5cf0..bf27c637f4 100644 --- a/public/modules/users/views/signin.client.view.html +++ b/public/modules/users/views/signin.client.view.html @@ -13,6 +13,10 @@

Sign in using your social accounts

+ + + +

Or with your account

@@ -36,4 +40,4 @@

Or with your account

- \ No newline at end of file + diff --git a/public/modules/users/views/signup.client.view.html b/public/modules/users/views/signup.client.view.html index 10f84d74ac..61518e70f0 100644 --- a/public/modules/users/views/signup.client.view.html +++ b/public/modules/users/views/signup.client.view.html @@ -13,6 +13,10 @@

Sign up using your social accounts

+ + + +

Or with your email

@@ -48,4 +52,4 @@

Or with your email

- \ No newline at end of file +