Skip to content

Commit d818240

Browse files
author
Jiaping Zeng
committed
finally?
1 parent ad3c6da commit d818240

File tree

9 files changed

+57
-16
lines changed

9 files changed

+57
-16
lines changed

auth.js

+10-2
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,17 @@ var strategy = new Auth0Strategy({
55
domain: 'codeday.auth0.com',
66
clientID: 'pu0iuM0f0FiE7wf7B5Y8xtl2bP4d9SH4',
77
clientSecret: 'kccuUk5H90cMhkNhDxmRRCRS7l2Ra4AvnaXx6OKpMKW4NGJ_9H96cqCHFORc6H94',
8-
callbackURL: 'http://localhost:3000/callback'
8+
callbackURL: 'https://localhost:3000/user/callback'
99
}, (accessToken, refreshToken, extraParams, profile, done) => {
1010
return done(null, profile)
1111
})
1212

13-
passport.use(strategy)
13+
passport.use(strategy)
14+
15+
passport.serializeUser((user, done) => {
16+
done(null, user)
17+
})
18+
19+
passport.deserializeUser((user, done) => {
20+
done(null, user)
21+
})

lib/middleware/loggedIn.js

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
module.exports = () => {
2+
return (req, res, next) => {
3+
if (req.user) return next()
4+
req.session.returnTo = req.originalUrl
5+
console.log('user not found')
6+
res.redirect('/user/login')
7+
}
8+
}

lib/middleware/userInView.js

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
module.exports = () => {
2+
return (req, res, next) => {
3+
res.locals.user = req.user
4+
next()
5+
}
6+
}

routes/index.js

+8
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,12 @@ router.get('/', (req, res) => {
55
res.render('index')
66
})
77

8+
router.get('/login', (req, res) => {
9+
res.redirect('/user/login')
10+
})
11+
12+
router.get('/callback', (req, res) => {
13+
res.redirect('/user/callback')
14+
})
15+
816
module.exports = router

routes/user.js

+14-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
var express = require('express')
22
var passport = require('passport')
3+
var path = require('path')
4+
var loggedIn = require('../lib/middleware/loggedIn')
35
var router = express.Router()
46

57
router.get('/login', passport.authenticate('auth0', {
@@ -8,20 +10,28 @@ router.get('/login', passport.authenticate('auth0', {
810
res.redirect('/')
911
})
1012

13+
router.get('/profile', loggedIn(), (req, res, next) => {
14+
const { _raw, _json, ...userProfile } = req.user
15+
res.render('user/profile', {
16+
userProfile: JSON.stringify(userProfile, null, 2),
17+
title: 'Profile'
18+
})
19+
})
20+
1121
router.get('/callback', (req, res, next) => {
1222
passport.authenticate('auth0', (err, user, info) => {
1323
if (err) return next(err)
14-
if (!user) return res.redirect('/login')
15-
req.login(user, (err) => {
24+
if (!user) return res.redirect('/user/login')
25+
req.logIn(user, (err) => {
1626
if (err) return next(err)
1727
const returnTo = req.session.returnTo
1828
delete req.session.returnTo
19-
res.redirect(returnTo || '/user')
29+
res.redirect(returnTo || '/user/profile')
2030
})
2131
})(req, res, next)
2232
})
2333

24-
router.get('logout', (req, res) => {
34+
router.get('/logout', (req, res) => {
2535
req.logout()
2636
res.redirect('/')
2737
})

server.js

+8-10
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,9 @@ var fs = require('fs')
55
var https = require('https')
66
var session = require('express-session')
77
var passport = require('passport')
8+
var userInView = require('./lib/middleware/userInView')
89

9-
var Auth0Strategy = require('passport-auth0');
10-
var userInViews = require('./middleware/userInViews');
11-
var indexRouter = require('./routers/index');
12-
var authRouter = require('./routers/auth')
10+
var index = require('./routes/index')
1311
var event = require('./routes/event')
1412
var user = require('./routes/user')
1513
require('./auth.js')
@@ -22,17 +20,17 @@ app.set('view engine', 'ejs')
2220
app.use(express.static(path.join(__dirname, 'public')))
2321
app.use(bodyParser.urlencoded({ extended: false }))
2422
app.use(bodyParser.json())
25-
26-
app.use(passport.initialize())
27-
app.use(passport.session())
2823
app.use(session({
29-
secret: 'very secret secret',
24+
secret: 'dont tell anyone',
3025
cookie: {
3126
secure: true
3227
},
3328
resave: false,
3429
saveUninitialized: true
3530
}))
31+
app.use(passport.initialize())
32+
app.use(passport.session())
33+
app.use(userInView())
3634

3735
app.use('/', index)
3836
app.use('/event', event)
@@ -42,5 +40,5 @@ https.createServer({
4240
key: fs.readFileSync('server.key'),
4341
cert: fs.readFileSync('server.cert')
4442
}, app).listen(port, function () {
45-
console.log(`Example app listening on port ${port}! Go to https://localhost:3000/`)
46-
})
43+
console.log(`server started on port ${port}`)
44+
})

views/user/index.ejs

Whitespace-only changes.

views/user/profile.ejs

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
<h1>profile</h1>
2+
<h3><%= userProfile %></h3>

views/user/signup.ejs

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<h1>signup</h1>

0 commit comments

Comments
 (0)