正在显示
4 个修改的文件
包含
104 行增加
和
2 行删除
@@ -2,7 +2,6 @@ | @@ -2,7 +2,6 @@ | ||
2 | // # auth | 2 | // # auth |
3 | 3 | ||
4 | var passport = require('passport') | 4 | var passport = require('passport') |
5 | - | ||
6 | var lib, app | 5 | var lib, app |
7 | 6 | ||
8 | module.exports = function(_lib, _app) { | 7 | module.exports = function(_lib, _app) { |
@@ -32,3 +31,7 @@ function deserializeUser(id, done) { | @@ -32,3 +31,7 @@ function deserializeUser(id, done) { | ||
32 | done(err, user) | 31 | done(err, user) |
33 | }) | 32 | }) |
34 | } | 33 | } |
34 | + | ||
35 | + | ||
36 | + | ||
37 | + |
@@ -12,9 +12,11 @@ module.exports = function(_lib, _app) { | @@ -12,9 +12,11 @@ module.exports = function(_lib, _app) { | ||
12 | } | 12 | } |
13 | 13 | ||
14 | function routes() { | 14 | function routes() { |
15 | - | 15 | + |
16 | var home = IoC.create('controllers/home') | 16 | var home = IoC.create('controllers/home') |
17 | 17 | ||
18 | app.get('/', home.render) | 18 | app.get('/', home.render) |
19 | app.get('/about', home.about) | 19 | app.get('/about', home.about) |
20 | + | ||
20 | } | 21 | } |
22 | + |
examples/auth/google/auth.js
0 → 100644
1 | +/** | ||
2 | + * Add following code to auth() function in | ||
3 | + * ./config/auth.js | ||
4 | + * | ||
5 | + * It's better to keep 'returnURL' and 'realm' | ||
6 | + * in settings. | ||
7 | + */ | ||
8 | + | ||
9 | + | ||
10 | +var GoogleStrategy = require('passport-google').Strategy | ||
11 | + | ||
12 | +passport.use( new GoogleStrategy({ | ||
13 | + returnURL: 'http://localhost:3000/auth/google/callback', | ||
14 | + realm: 'http://localhost:3000', | ||
15 | + passReqToCallback: true | ||
16 | + }, | ||
17 | + function(req, identifier, profile, done) { | ||
18 | + | ||
19 | + var email = profile.emails[ 0 ].value | ||
20 | + var User = lib.db.model('User') | ||
21 | + | ||
22 | + // save user | ||
23 | + User.findOne({ | ||
24 | + email: email | ||
25 | + }, function( err, user ) { | ||
26 | + | ||
27 | + if (!user) { | ||
28 | + User.create({ | ||
29 | + email: email, | ||
30 | + name: profile.displayName, | ||
31 | + }, function(err, user) { | ||
32 | + | ||
33 | + // Update lastToken | ||
34 | + user.lastToken = identifier | ||
35 | + user.save() | ||
36 | + return done( err, user ) | ||
37 | + }); | ||
38 | + | ||
39 | + } else { | ||
40 | + // Update lastToken | ||
41 | + user.lastToken = identifier | ||
42 | + user.save() | ||
43 | + return done( err, user ) | ||
44 | + } | ||
45 | + | ||
46 | + }); | ||
47 | + } | ||
48 | +)); |
examples/auth/google/routes.js
0 → 100644
1 | +/** | ||
2 | + * Add following code to routes() function in | ||
3 | + * your ./config/routes.js file. | ||
4 | + */ | ||
5 | + | ||
6 | +var passport = require('passport') | ||
7 | + | ||
8 | +// auth route | ||
9 | + | ||
10 | +app.get('/auth/google', function(req,res,next) { | ||
11 | + // add remember me details etc. here | ||
12 | + next() | ||
13 | + }, | ||
14 | + passport.authenticate('google', { failureRedirect: '/', failureFlash: true }), | ||
15 | + function(req, res) { | ||
16 | + res.redirect('/') | ||
17 | + }); | ||
18 | + | ||
19 | +// auth callback | ||
20 | + | ||
21 | +app.get('/auth/google/callback', | ||
22 | + passport.authenticate( 'google', { | ||
23 | + failureRedirect: '/' | ||
24 | + }), | ||
25 | + function(req, res, next) { | ||
26 | + var redirectTo = req.session.redirectTo; | ||
27 | + | ||
28 | + // Successful authentication, redirect to dashboard page. | ||
29 | + if ( redirectTo ) { | ||
30 | + req.session.redirectTo = null | ||
31 | + res.redirect(redirectTo) | ||
32 | + } else { | ||
33 | + res.redirect('/logged-in') | ||
34 | + } | ||
35 | + } | ||
36 | +); | ||
37 | + | ||
38 | +// log out | ||
39 | + | ||
40 | +app.get('/logout', function(req, res){ | ||
41 | + req.logout() | ||
42 | + res.redirect('/') | ||
43 | +}); | ||
44 | + | ||
45 | +// sample log-in message | ||
46 | + | ||
47 | +app.get('/logged-in', function(req, res){ | ||
48 | + req.send(200, 'Hey!') | ||
49 | +}); |
请
注册
或
登录
后发表评论