UNPKG

artsy-passport

Version:

Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).

62 lines (54 loc) 1.53 kB
// Generated by CoffeeScript 1.11.1 (function() { var _, opts, qs, request; opts = require('../options'); qs = require('querystring'); request = require('superagent'); _ = require('underscore'); this.headerLogin = function(req, res, next) { var token; if (req.path === opts.logoutPath) { return next(); } if (token = req.get('X-Access-Token') || req.query.access_token) { return req.login(new opts.CurrentUser({ accessToken: token }), next); } else { return next(); } }; this.trustTokenLogin = function(req, res, next) { var settings, token; if ((token = req.query.trust_token) == null) { return next(); } settings = { grant_type: 'trust_token', client_id: opts.ARTSY_ID, client_secret: opts.ARTSY_SECRET, code: token }; return request.post(opts.ARTSY_URL + "/oauth2/access_token").send(settings).end(function(err, response) { var user; if ((err != null) || !response.ok) { return next(); } user = new opts.CurrentUser({ accessToken: response.body.access_token }); return req.login(user, function(err) { var params, path; if (err != null) { return next(); } path = req.url.split('?')[0]; params = _.omit(req.query, 'trust_token'); if (!_.isEmpty(params)) { path += "?" + (qs.stringify(params)); } return res.redirect(path); }); }); }; }).call(this);