Skip to content

Commit

Permalink
Merge pull request #5 from dionyziz/auth
Browse files Browse the repository at this point in the history
Auth
  • Loading branch information
dionyziz authored May 21, 2018
2 parents b048045 + 6275dea commit fed981a
Show file tree
Hide file tree
Showing 7 changed files with 78 additions and 0 deletions.
3 changes: 3 additions & 0 deletions api/.env-template
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
GITHUB_CLIENT_ID=yourid
GITHUB_CLIENT_SECRET=yourtoke
GITHUB_CALLBACK_URL=http://localhost:3000/auth/github/callback
DB_URI=postgres://root@localhost/blockchain_course
23 changes: 23 additions & 0 deletions api/auth/github.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
const GitHubStrategy = require('passport-github')

const strategy = new GitHubStrategy({
clientID: process.env.GITHUB_CLIENT_ID,
clientSecret: process.env.GITHUB_CLIENT_SECRET,
callbackURL: process.env.GITHUB_CALLBACK_URL
},
(authToken, refreshToken, profile, cb) => {
/*
console.log('GitHub profile:')
console.log('===============')
console.log(profile)
console.log('===============')
*/
/*
User.findOrCreate({githubId: profile.id}, (err, user) => {
return cb(err, user)
})
*/
}
)

module.exports = strategy
16 changes: 16 additions & 0 deletions api/auth/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
const passport = require('passport')
const GitHubStrategy = require('./github')

passport.serializeUser((user, done) => {
console.log('Serializing user:')
console.log(user)
done(null, {_id: user._id})
})

passport.deserializeUser((id, done) => {
console.log('Deserializing user ', id)
})

passport.use(GitHubStrategy)

module.exports = passport
3 changes: 3 additions & 0 deletions api/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ const winston = require('winston')
const express = require('express')
const bodyParser = require('body-parser')
const routes = require('./routes')
const passport = require('./auth')
const app = express()
const session = require('express-session')

Expand All @@ -15,6 +16,8 @@ app.use(session({
}))
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended: true}))
app.use(passport.initialize())
app.use(passport.session())

for (url in routes) {
app.use(url, routes[url])
Expand Down
2 changes: 2 additions & 0 deletions api/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@
"express": "^4.16.3",
"express-session": "^1.15.6",
"npm": "^6.0.1",
"passport": "^0.4.0",
"passport-github": "^1.1.0",
"pg": "^7.4.3",
"sequelize": "^4.37.8",
"sequelize-cli": "^4.0.0",
Expand Down
29 changes: 29 additions & 0 deletions api/routes/auth.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
const express = require('express')
const passport = require('passport')
const router = express.Router()

router.get(
'/github',
passport.authenticate('github', {scope: ['profile']})
)
router.get(
'/github/callback',
passport.authenticate(
'github',
{
successRedirect: '/',
failureRedirect: '/login'
}
)
)
router.post('/logout', (req, res) => {
if (req.user) {
console.log('Logging out user')
req.session.destroy()
res.clearCookie('connect.sid')
return res.json({msg: 'Logged out'})
}
return res.json({msg: 'You are not logged in'})
})

module.exports = router
2 changes: 2 additions & 0 deletions api/routes/index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
const express = require('express')
const auth = require('./auth')
const router = express.Router()

router.get('/', (req, res) => {
Expand All @@ -7,4 +8,5 @@ router.get('/', (req, res) => {

module.exports = {
'/': router,
'/auth': auth
}

0 comments on commit fed981a

Please sign in to comment.