Skip to content

Instantly share code, notes, and snippets.

@nodesocket
Created October 22, 2014 20:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nodesocket/3529a4a9a45da4307e46 to your computer and use it in GitHub Desktop.
Save nodesocket/3529a4a9a45da4307e46 to your computer and use it in GitHub Desktop.
app.post('/oauth/signin', [
oauthLogger,
jsonParser,
function(req, res) {
if(!req.body) {
res.status(400).send({
error: {
status_code: 400,
status: 'Bad Request',
message: 'Missing required body'
}
}).end();
return;
}
if(!req.body.provider || !req.body.code) {
res.status(400).send({
error: {
status_code: 400,
status: 'Bad Request',
message: 'Missing required parameter'
}
}).end();
return;
}
OAuth.auth(req.body.provider, req.session, {
code: req.body.code
})
.then(function(requestObject) {
return requestObject.me();
})
.then(function(me) {
if(!me.raw.id) {
res.status(500).send({
error: {
status_code: 500,
status: 'Internal Server Error',
message: 'Missing required id'
}
}).end();
return;
}
req.session.oauth.provider = req.body.provider;
req.session.oauth.id = me.raw.id;
res.status(200).send({
email: me.email,
avatar: me.avatar
}).end();
})
.fail(function(err) {
res.status(503).send({
error: {
status_code: 503,
status: 'Service Unavailable',
message: err
}
}).end();
});
}
]);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment