· 7 years ago · Mar 31, 2018, 09:18 AM
1var router = require('./app/config/routes');
2var googleStrategy = require('./app/config/passport');
3var session = require("express-session");
4
5var passport = require('passport');
6app.use(session({secret : '<secret-key>'}));
7app.use(passport.initialize());
8app.use(passport.session());
9googleStrategy(passport);
10
11module.exports = function(app, passport) {
12
13 app.get('/auth/google', function() {
14 passport.authenticate('google', {scope: ['profile', 'email']});
15 });
16
17 app.get('/auth/google/callback', function() {
18 passport.authenticate('google', {
19 successRedirect: '/profile',
20 failureRedirect: '/fail'
21 });
22 });
23
24 .... ALSO configured /profile and /fail
25};
26
27passport.serializeUser(function(user, callback){
28 console.log('serializing user.');
29 callback(null, user);
30 });
31
32 passport.deserializeUser(function(user, callback){
33 console.log('deserialize user.');
34 callback(null, user);
35 });
36
37 var processRequest = function(token, refreshToken, profile, callback){
38 process.nextTick(function(){
39 console.log('id : '+ profile.id);
40 console.log('name :'+ profile.displayName);
41 console.log('email :' + profile.emails);
42 console.log('token : '+ token);
43 });
44 };
45
46 passport.use(new GoogleStrategy({
47 clientID: 'client ID',
48 clientSecret : 'client SECRET',
49 callbackURL : 'http://127.0.0.1:8080/auth/google/callback',
50 realm : 'http://127.0.0.1:8080'
51 }, processRequest));
52
53app.get('/auth/google',
54 passport.authenticate('google', {scope: ['profile', 'email']})
55 );
56
57 app.get('/auth/google/callback',
58 passport.authenticate('google', {
59 successRedirect: '/profile',
60 failureRedirect: '/fail'
61 })
62 );
63
64var googleStrategy = require('passport-google-oauth').OAuth2Strategy;
65 app.configure(function() {
66
67 app.set('views', './views');
68 app.set('view engine', 'jade');
69 app.use(express.favicon());
70 app.use(express.logger('dev'));
71 app.use(express.cookieParser());
72 app.use(express.bodyParser());
73 app.use(express.session({secret:'MySecret'}));
74 app.use(passport.initialize());
75 app.use(passport.session());
76 app.use(express.methodOverride());
77 app.use(app.router);
78 app.use(express.static('./public'));
79});
80
81app.get('/auth/google', select.passport.authenticate('google',{scope: 'https://www.googleapis.com/auth/plus.me https://www.google.com/m8/feeds https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile'}));
82
83app.get('/auth/google/callback', function() {
84 passport.authenticate('google', {
85 successRedirect: '/profile',
86 failureRedirect: '/fail'
87 });
88});
89app.get('/logout', function (req, res) {
90 req.logOut();
91 res.redirect('/');
92 });
93
94passport.use(new googleStrategy({
95 clientID: '<TheNewclientID>',
96 clientSecret: '<The New Secret>',
97
98 callbackURL: "http://locahost:8080/auth/google/callback"
99},
100function (accessToken, refreshToken, profile, done) {
101 console.log(profile); //profile contains all the personal data returned
102 done(null, profile)
103}
104));
105
106passport.serializeUser(function(user, callback){
107 console.log('serializing user.');
108 callback(null, user.id);
109 });
110
111passport.deserializeUser(function(user, callback){
112 console.log('deserialize user.');
113 callback(null, user.id);
114 });
115
116app.get('/auth/google', passport.authenticate('google'));
117
118app.get('/auth/google', function() {
119 passport.authenticate('google', {scope: ['profile', 'email']});
120});
121
122app.get('/auth/google', function(request, response, next) {
123 passport.authenticate('google', {scope: ['profile', 'email']})(request, response, next);
124});
125
126app.get(
127 "/auth/google/callback",
128 passport.authenticate('google'),
129 (req, res) => {
130 res.redirect('/whatever')
131 }
132);