Skip to content

Instantly share code, notes, and snippets.

@jeanphix
Created March 20, 2012 17:02
Show Gist options
  • Save jeanphix/2138232 to your computer and use it in GitHub Desktop.
Save jeanphix/2138232 to your computer and use it in GitHub Desktop.
brunch github OAuth2
sysPath = require 'path'
express = require 'express'
oauth = require 'oauth'
_appSecret = "myawesomesecret"
_githubUrl = "https://github.com/login"
_githubKey = "xxxxxxxxxxxxxx"
_githubSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
_githubCallBack = "http://my.app/signin/callback"
consumer = ->
new oauth.OAuth2 _githubKey, _githubSecret, _githubUrl
createServer = (path) ->
server = express.createServer()
server.use express.cookieParser()
server.use express.session({ secret: _appSecret })
server.configure ->
server.use express.static path
server.set 'views', path
server.set 'view options', layout: no
server.register '.html', compile: (str, options) -> (locals) -> str
server.get '/', (req, res) ->
res.render 'index.html'
server.get '/signin', (req, res) ->
c = consumer()
res.redirect(c.getAuthorizeUrl({redirect_uri: _githubCallBack}))
server.get '/signin/callback', (req, res) ->
c = consumer()
c.getOAuthAccessToken req.query.code, null, (error, oauth_token, oauth_token_secret, results) ->
if error
console.log error
else
req.session._githubToken = oauth_token
res.redirect('/')
server
exports.startServer = (port, path, callback) ->
server = createServer(path)
server.listen parseInt port, 10
server.on 'listening', callback
console.log "application started on http://0.0.0.0:#{port}."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment