Skip to content

Commit 2565765

Browse files
committed
Add passport-discourse support related #7
1 parent 262e693 commit 2565765

File tree

3 files changed

+100
-10
lines changed

3 files changed

+100
-10
lines changed

package.json

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
"build:client": "cross-env NODE_ENV=production webpack --config build/webpack.client.config.js --progress --hide-modules",
1111
"build:server": "cross-env NODE_ENV=production webpack --config build/webpack.server.config.js --progress --hide-modules"
1212
},
13-
"engines" : {
14-
"node" : ">=6.9.0"
13+
"engines": {
14+
"node": ">=6.9.0"
1515
},
1616
"dependencies": {
1717
"autoprefixer": "^6.4.0",
@@ -23,25 +23,28 @@
2323
"css-loader": "^0.25.0",
2424
"es6-promise": "^3.2.1",
2525
"express": "^4.14.0",
26+
"express-session": "^1.14.2",
2627
"extract-text-webpack-plugin": "^2.0.0-beta.3",
2728
"file-loader": "^0.9.0",
28-
"lru-cache": "^4.0.1",
29-
"vue": "^2.0.0",
30-
"vue-router": "^2.0.0",
31-
"vue-server-renderer": "^2.0.0",
32-
"vuex": "^2.0.0",
33-
"vuex-router-sync": "^3.0.0",
3429
"jade": "^1.11.0",
3530
"livescript": "^1.5.0",
31+
"lru-cache": "^4.0.1",
3632
"node-bourbon": "^4.2.8",
3733
"node-sass": "^3.10.1",
34+
"passport": "^0.3.2",
35+
"passport-discourse": "^1.0.3",
36+
"sass-loader": "^4.0.2",
3837
"serialize-javascript": "^1.3.0",
3938
"serve-favicon": "^2.3.0",
40-
"sass-loader": "^4.0.2",
4139
"stylus": "^0.54.5",
4240
"stylus-loader": "^2.1.2",
4341
"url-loader": "^0.5.7",
42+
"vue": "^2.0.0",
4443
"vue-loader": "^9.5.0",
44+
"vue-router": "^2.0.0",
45+
"vue-server-renderer": "^2.0.0",
46+
"vuex": "^2.0.0",
47+
"vuex-router-sync": "^3.0.0",
4548
"webpack": "^2.1.0-beta.20",
4649
"webpack-dev-middleware": "^1.6.1",
4750
"webpack-hot-middleware": "^2.12.2"

server.js

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,38 @@ const passportDiscourse = require('passport-discourse').Strategy
1111

1212
const app = express()
1313

14-
1514
app.use('/dist', express.static(resolve('./dist')))
1615
app.use(favicon(resolve('./src/assets/logo.png')))
16+
app.use(require('express-session')({
17+
secret: process.env.SECRET,
18+
resave: true,
19+
saveUninitialized: true,
20+
}))
21+
app.use(passport.initialize())
22+
app.use(passport.session())
23+
24+
passport.use(new passportDiscourse({
25+
secret: process.env.SECRET,
26+
discourse_url: 'https://talk.vtaiwan.tw',
27+
debug: false,
28+
}, function(accessToken, refreshToken, profile, done) {
29+
done(null, profile)
30+
}))
31+
32+
passport.serializeUser(function(user, done) {
33+
done(null, user.email);
34+
});
35+
36+
passport.deserializeUser(function(id, done) {
37+
done(null, id);
38+
});
39+
40+
app.get('/auth/discourse_sso', passport.authenticate('discourse'))
41+
app.get(passportDiscourse.route_callback, passport.authenticate('discourse', {
42+
successRedirect: '/',
43+
failureRedirect: '/',
44+
}))
45+
1746

1847
app.get('*', render)
1948

yarn.lock

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -764,6 +764,10 @@ base64-js@^1.0.2:
764764
version "1.2.0"
765765
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.0.tgz#a39992d723584811982be5e290bb6a53d86700f1"
766766

767+
768+
version "1.3.3"
769+
resolved "https://registry.yarnpkg.com/base64-url/-/base64-url-1.3.3.tgz#f8b6c537f09a4fc58c99cb86e0b0e9c61461a20f"
770+
767771
Base64@~0.2.0:
768772
version "0.2.1"
769773
resolved "https://registry.yarnpkg.com/Base64/-/Base64-0.2.1.tgz#ba3a4230708e186705065e66babdd4c35cf60028"
@@ -1147,6 +1151,10 @@ core-util-is@~1.0.0:
11471151
version "1.0.2"
11481152
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
11491153

1154+
1155+
version "3.4.1"
1156+
resolved "https://registry.yarnpkg.com/crc/-/crc-3.4.1.tgz#65d5830b1a2569557cfb324c0e679998521473ee"
1157+
11501158
create-ecdh@^4.0.0:
11511159
version "4.0.0"
11521160
resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d"
@@ -1517,6 +1525,20 @@ expand-range@^1.8.1:
15171525
dependencies:
15181526
fill-range "^2.1.0"
15191527

1528+
express-session:
1529+
version "1.14.2"
1530+
resolved "https://registry.yarnpkg.com/express-session/-/express-session-1.14.2.tgz#6bcf586ed6d1dc37b02570087756c9de7b80b275"
1531+
dependencies:
1532+
cookie "0.3.1"
1533+
cookie-signature "1.0.6"
1534+
crc "3.4.1"
1535+
debug "~2.2.0"
1536+
depd "~1.1.0"
1537+
on-headers "~1.0.1"
1538+
parseurl "~1.3.1"
1539+
uid-safe "~2.1.3"
1540+
utils-merge "1.0.0"
1541+
15201542
express@^4.14.0:
15211543
version "4.14.0"
15221544
resolved "https://registry.yarnpkg.com/express/-/express-4.14.0.tgz#c1ee3f42cdc891fb3dc650a8922d51ec847d0d66"
@@ -2675,6 +2697,10 @@ on-finished@~2.3.0:
26752697
dependencies:
26762698
ee-first "1.1.1"
26772699

2700+
on-headers@~1.0.1:
2701+
version "1.0.1"
2702+
resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7"
2703+
26782704
once@^1.3.0:
26792705
version "1.4.0"
26802706
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
@@ -2762,6 +2788,23 @@ parseurl@~1.3.0, parseurl@~1.3.1:
27622788
version "1.3.1"
27632789
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56"
27642790

2791+
passport:
2792+
version "0.3.2"
2793+
resolved "https://registry.yarnpkg.com/passport/-/passport-0.3.2.tgz#9dd009f915e8fe095b0124a01b8f82da07510102"
2794+
dependencies:
2795+
passport-strategy "1.x.x"
2796+
pause "0.0.1"
2797+
2798+
passport-discourse:
2799+
version "1.0.3"
2800+
resolved "https://registry.yarnpkg.com/passport-discourse/-/passport-discourse-1.0.3.tgz#0e3beb61c182ad28d1a4f3c29432d63a0dc303de"
2801+
dependencies:
2802+
passport-strategy "^1.0.0"
2803+
2804+
passport-strategy@^1.0.0, [email protected]:
2805+
version "1.0.0"
2806+
resolved "https://registry.yarnpkg.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4"
2807+
27652808
path-array@^1.0.0:
27662809
version "1.0.1"
27672810
resolved "https://registry.yarnpkg.com/path-array/-/path-array-1.0.1.tgz#7e2f0f35f07a2015122b868b7eac0eb2c4fec271"
@@ -2798,6 +2841,10 @@ path-type@^1.0.0:
27982841
pify "^2.0.0"
27992842
pinkie-promise "^2.0.0"
28002843

2844+
2845+
version "0.0.1"
2846+
resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d"
2847+
28012848
pbkdf2@^3.0.3:
28022849
version "3.0.9"
28032850
resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.9.tgz#f2c4b25a600058b3c3773c086c37dbbee1ffe693"
@@ -3150,6 +3197,10 @@ querystring@^0.2.0, [email protected]:
31503197
version "0.2.0"
31513198
resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
31523199

3200+
random-bytes@~1.0.0:
3201+
version "1.0.0"
3202+
resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b"
3203+
31533204
randomatic@^1.1.3:
31543205
version "1.1.5"
31553206
resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.5.tgz#5e9ef5f2d573c67bd2b8124ae90b5156e457840b"
@@ -3719,6 +3770,13 @@ uid-number@~0.0.6:
37193770
version "0.0.6"
37203771
resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81"
37213772

3773+
uid-safe@~2.1.3:
3774+
version "2.1.3"
3775+
resolved "https://registry.yarnpkg.com/uid-safe/-/uid-safe-2.1.3.tgz#077e264a00b3187936b270bb7376a26473631071"
3776+
dependencies:
3777+
base64-url "1.3.3"
3778+
random-bytes "~1.0.0"
3779+
37223780
uniq@^1.0.1:
37233781
version "1.0.1"
37243782
resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"

0 commit comments

Comments
 (0)