{"_id":"artsy-passport","_rev":"53-48b7d9ebaeecac44b13007687de01c70","name":"artsy-passport","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","dist-tags":{"latest":"2.0.4"},"versions":{"0.0.1":{"name":"artsy-passport","version":"0.0.1","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"engines":{"node":">= 0.10.x"},"scripts":{"test":"make test"},"dependencies":{},"devDependencies":{"mocha":"*","should":"*","sinon":"*"},"_id":"artsy-passport@0.0.1","dist":{"shasum":"67cdfee52d4439052818baae7ce0e05011b83324","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-0.0.1.tgz","integrity":"sha512-fk9tMsExRyDG5sVaeDYsKqVTPotvXBsPZDBBBfrjHixw7h6dVg2TmdPQM/HGIHK5ilfDnnxONjfLuM5K47LQ6w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCaShX2tlEqdWjsCzD4pugzP+wfC6nsA8CLPP4JCQ15DAIhAKTeAXPCM+uL/DNgvOE5JPS8XX37AUI/PNM51ajxNFFB"}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"craigspaeth","email":"craigspaeth@gmail.com"},"maintainers":[{"name":"craigspaeth","email":"craigspaeth@gmail.com"}],"directories":{}},"0.0.2":{"name":"artsy-passport","version":"0.0.2","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"engines":{"node":">= 0.10.x"},"scripts":{"test":"make test"},"dependencies":{"passport":"*","passport-facebook":"*","passport-twitter":"*","passport-local":"*","superagent":"*","coffee-script":"*","express":"*"},"devDependencies":{"mocha":"*","should":"*","sinon":"*","jade":"*","underscore":"*","backbone":"*","sharify":"*","backbone-super-sync":"*","browserify":"*","coffeeify":"*","artsy-xapp-middleware":"*","zombie":"*"},"_id":"artsy-passport@0.0.2","dist":{"shasum":"07f0dec301fca89cbc2fa1667df8fe1529cd35ac","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-0.0.2.tgz","integrity":"sha512-jgd+TjhN05OYDPs8lFuaMipP9jauVyjeoxUdUVYd90jW0Bfs9/duvY1UXvUEV4l+O8/gRV9hfYP1/XPAbD5a1Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGh+BWqYwEU/KvxFs66vbEcoQHZS0sqCSDUP3D+G7ZkgIgT+P2Ful5PBNxolqEgXXpGLxmZEIZRhiU2pGBgkF5YV8="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"craigspaeth","email":"craigspaeth@gmail.com"},"maintainers":[{"name":"craigspaeth","email":"craigspaeth@gmail.com"}],"directories":{}},"0.0.3":{"name":"artsy-passport","version":"0.0.3","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"engines":{"node":">= 0.10.x"},"scripts":{"test":"make test"},"dependencies":{"passport":"*","passport-facebook":"*","passport-twitter":"*","passport-local":"*","superagent":"*","coffee-script":"*","express":"*"},"devDependencies":{"mocha":"*","should":"*","sinon":"*","jade":"*","underscore":"*","backbone":"*","sharify":"*","backbone-super-sync":"*","browserify":"*","coffeeify":"*","artsy-xapp-middleware":"*","zombie":"*"},"_id":"artsy-passport@0.0.3","dist":{"shasum":"e9b993c7f7f4ad5b27d9013a739d28a39edbb927","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-0.0.3.tgz","integrity":"sha512-snDq5jXsjxJA7zJfUHVrZ5tTxhOp98NgLwbyBxPrZp07i92rRRPui6DisaFCX1POae8g/AN+0n4il4JMraDybA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG967/z9xlaCUMtnkTuVu4MMzGSa9b4HLcBgr4JjHYt3AiA2266KqQgdSDuhK6tRLMNU3KR30MruS9aHQnktUWwwOw=="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"craigspaeth","email":"craigspaeth@gmail.com"},"maintainers":[{"name":"craigspaeth","email":"craigspaeth@gmail.com"}],"directories":{}},"0.1.0":{"name":"artsy-passport","version":"0.1.0","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"engines":{"node":">= 0.10.x"},"scripts":{"test":"make test"},"dependencies":{"passport":"*","passport-facebook":"*","passport-twitter":"*","passport-local":"*","superagent":"*","coffee-script":"*","express":"*"},"devDependencies":{"mocha":"*","should":"*","sinon":"*","jade":"*","underscore":"*","backbone":"*","sharify":"*","backbone-super-sync":"*","browserify":"*","coffeeify":"*","artsy-xapp-middleware":"*","zombie":"*","rewire":"*"},"_id":"artsy-passport@0.1.0","dist":{"shasum":"06696f8461d5645394991bab9c2aee105633a755","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-0.1.0.tgz","integrity":"sha512-3/jf+6ZCaN+rGxzaxPSnNtYhWwiJ/kXRGPChbelvpYC7fO/3d6iKocpCJKysBBf4H0tRXXhyrLo1ffSFuQj2Iw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDl4QPg28AOpuvZD5kWYXB+XI6KnK65ajSTEE7dOHzjQAiAyq7JxkI0EU8xZA/sJpvhTkHXJEgVyuwNaLEIFZ1Dusw=="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"craigspaeth","email":"craigspaeth@gmail.com"},"maintainers":[{"name":"craigspaeth","email":"craigspaeth@gmail.com"}],"directories":{}},"0.1.1":{"name":"artsy-passport","version":"0.1.1","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"engines":{"node":">= 0.10.x"},"scripts":{"test":"make test"},"dependencies":{"passport":"*","passport-facebook":"*","passport-twitter":"*","passport-local":"*","superagent":"*","coffee-script":"*","express":"*"},"devDependencies":{"mocha":"*","should":"*","sinon":"*","jade":"*","underscore":"*","backbone":"*","sharify":"*","backbone-super-sync":"*","browserify":"*","coffeeify":"*","artsy-xapp-middleware":"*","zombie":"*","rewire":"*"},"_id":"artsy-passport@0.1.1","dist":{"shasum":"fff8d25b031b20c8e53cb46d738f44226c9d8592","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-0.1.1.tgz","integrity":"sha512-4HjrwsXxK4FFpKhTrk8S5CtPqr+IzuUx629rDt8ZO/7Daj1GL02bnXv0hvDLdXm+PR9r+3n+Bcg5NCM3beK1PQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDvAwPf0kCXiegeGToE06t6y0qBbSrz6MnRrlJ4Dx+b/QIgZyguowYwqI6st70GBjjMFTuSTkNY6PofKaHF6MYoClc="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"craigspaeth","email":"craigspaeth@gmail.com"},"maintainers":[{"name":"craigspaeth","email":"craigspaeth@gmail.com"}],"directories":{}},"0.1.2":{"name":"artsy-passport","version":"0.1.2","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"engines":{"node":">= 0.10.x"},"scripts":{"test":"make test"},"dependencies":{"passport":"*","passport-facebook":"*","passport-twitter":"*","passport-local":"*","superagent":"*","coffee-script":"*","express":"*"},"devDependencies":{"mocha":"*","should":"*","sinon":"*","jade":"*","underscore":"*","backbone":"*","sharify":"*","backbone-super-sync":"*","browserify":"*","coffeeify":"*","artsy-xapp-middleware":"*","zombie":"*","rewire":"*"},"_id":"artsy-passport@0.1.2","dist":{"shasum":"1bae31f6476cbd7bff7982276d646a397a141042","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-0.1.2.tgz","integrity":"sha512-SOmm2pAvHaQ9S93JNIlU5AXaCElBY4iFNb4mJd5OKAAXLvCZuUMF0OPVl9UOK/nEpHN7PkklJvtRkbw/fLyVIg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAFWB95BOYdoXLh83kQZtXNVpzioFKLDZ/FKLmunS7NbAiEAxV9w3oSmQwdKeYJ8WopzUfVNOUfTG3B+UA3E9zXAIK8="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"craigspaeth","email":"craigspaeth@gmail.com"},"maintainers":[{"name":"craigspaeth","email":"craigspaeth@gmail.com"}],"directories":{}},"0.1.3":{"name":"artsy-passport","version":"0.1.3","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"engines":{"node":">= 0.10.x"},"scripts":{"test":"make test"},"dependencies":{"passport":"*","passport-facebook":"*","passport-twitter":"*","passport-local":"*","superagent":"*","coffee-script":"*","express":"*"},"devDependencies":{"mocha":"*","should":"*","sinon":"*","jade":"*","underscore":"*","backbone":"*","sharify":"*","backbone-super-sync":"*","browserify":"*","coffeeify":"*","artsy-xapp-middleware":"*","zombie":"*","rewire":"*"},"_id":"artsy-passport@0.1.3","dist":{"shasum":"d252edc452c6f175c4fe534bf6366d056413bc13","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-0.1.3.tgz","integrity":"sha512-HMcysmbQYNAsa0exL0ZZwjL7Sr/wLFRFuEOc59txXC8hD51Q1XOzGU/ikUfRJou4OfYt8v8G4RFO7PixZZg2mw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCtsCCFgYbbAfMHmsNRZAXMcfHtSBZ00v7283HSU1DXvwIgGSaJYAiRQyZ9h4ZcqW1w0+HLsJuZTivmMQCNPI3Ei+U="}]},"_from":".","_npmVersion":"1.3.11","_npmUser":{"name":"craigspaeth","email":"craigspaeth@gmail.com"},"maintainers":[{"name":"craigspaeth","email":"craigspaeth@gmail.com"}],"directories":{}},"0.1.5":{"name":"artsy-passport","version":"0.1.5","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"engines":{"node":">= 0.10.x"},"scripts":{"test":"make test"},"dependencies":{"passport":"*","passport-facebook":"*","passport-twitter":"*","passport-local":"*","superagent":"*","express":"*","coffee-script":"*"},"devDependencies":{"body-parser":"*","cookie-parser":"*","cookie-session":"*","morgan":"*","mocha":"*","should":"*","sinon":"*","jade":"*","underscore":"*","backbone":"*","sharify":"*","backbone-super-sync":"*","browserify":"*","coffeeify":"*","artsy-xapp-middleware":"*","zombie":"*","rewire":"*"},"_id":"artsy-passport@0.1.5","dist":{"shasum":"ab64a69b05a5d16f366244a21bb0f25352a7d512","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-0.1.5.tgz","integrity":"sha512-tJvGlZTOWfBGlep7FcGHtq0Z+u0uEgZsZjOsj4c/3XbTl/zVEKMzB9tx1MWYLhcVilnLvJBpTtSWmm4qvH2WlQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHe7RXNtjKH2RSW54jIs0IcgCENHttJ2EdYgPvCQlCR/AiEA3OR46VA5060SnO96f3qjnDJdbpYMM4W+z6vLof2HQlQ="}]},"_from":".","_npmVersion":"1.3.24","_npmUser":{"name":"craigspaeth","email":"craigspaeth@gmail.com"},"maintainers":[{"name":"craigspaeth","email":"craigspaeth@gmail.com"}],"directories":{}},"0.1.6":{"name":"artsy-passport","version":"0.1.6","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"engines":{"node":">= 0.10.x"},"scripts":{"test":"make test"},"dependencies":{"passport":"*","passport-facebook":"*","passport-twitter":"*","passport-local":"*","superagent":"*","express":"*","coffee-script":"*"},"devDependencies":{"body-parser":"*","cookie-parser":"*","cookie-session":"*","morgan":"*","mocha":"*","should":"*","sinon":"*","jade":"*","underscore":"*","backbone":"*","sharify":"*","backbone-super-sync":"*","browserify":"*","coffeeify":"*","artsy-xapp-middleware":"*","zombie":"*","rewire":"*"},"_id":"artsy-passport@0.1.6","dist":{"shasum":"3fe95f22c3c9f6a2dc733daf32b9923c4f34dd1d","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-0.1.6.tgz","integrity":"sha512-kNsFTuVMq5gQB6aOCWGkL4bQ9pSumImeVbqxg+PaUsf8KfQk3FyPkmr+TqFEk1wBiX+2D5UTQF4kWC4sZJ0hcg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE/26FpCJWqeMLTXo1kvmUFBUv5Wyd6nQQY6gK63CejsAiEArLn+eVfLbLEB6cwyAy6SXltVqOfTF3R1VBnLRDilFn0="}]},"_from":".","_npmVersion":"1.3.24","_npmUser":{"name":"craigspaeth","email":"craigspaeth@gmail.com"},"maintainers":[{"name":"craigspaeth","email":"craigspaeth@gmail.com"}],"directories":{}},"0.1.7":{"name":"artsy-passport","version":"0.1.7","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"contributors":[{"name":"Brennan Moore","email":"brennanmoore@gmail.com","url":"http://brennanmoore.com"}],"engines":{"node":">= 0.10.x"},"scripts":{"test":"make test"},"dependencies":{"passport":"*","passport-facebook":"*","passport-twitter":"*","passport-local":"*","superagent":"*","express":"*","coffee-script":"*"},"devDependencies":{"body-parser":"*","cookie-parser":"*","cookie-session":"*","morgan":"*","mocha":"*","should":"*","sinon":"*","jade":"*","underscore":"*","backbone":"*","sharify":"*","backbone-super-sync":"*","browserify":"*","coffeeify":"*","artsy-xapp-middleware":"*","zombie":"*","rewire":"*"},"gitHead":"ef55e3d17fd603c0edf80a890a773a7835f68644","_id":"artsy-passport@0.1.7","_shasum":"8a398d1a55400dcc94f00da459bdf7283925207a","_from":".","_npmVersion":"1.4.26","_npmUser":{"name":"zamiang","email":"brennanmoore@gmail.com"},"maintainers":[{"name":"craigspaeth","email":"craigspaeth@gmail.com"},{"name":"zamiang","email":"brennanmoore@gmail.com"}],"dist":{"shasum":"8a398d1a55400dcc94f00da459bdf7283925207a","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-0.1.7.tgz","integrity":"sha512-AWim0CrBiXKU26XKroFLyCb8B5QetnqSob0MZ5SCGSpKAJiV2fLaeT22lDLF7IGDwinJWslq/OoIfcgErDc9JA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQChuLmX2jtORQubM1blrleUNB77nfiOYrsgCzZcQdzUUwIhAPQusG4GUHldIL4nHLjryIrlXPW5La0rGm0Htpg6QZs2"}]},"directories":{}},"0.1.8":{"name":"artsy-passport","version":"0.1.8","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"contributors":[{"name":"Brennan Moore","email":"brennanmoore@gmail.com","url":"http://brennanmoore.com"}],"engines":{"node":">= 0.10.x"},"scripts":{"test":"make test"},"dependencies":{"passport":"*","passport-facebook":"*","passport-twitter":"*","passport-local":"*","superagent":"*","express":"*","coffee-script":"*"},"devDependencies":{"body-parser":"*","cookie-parser":"*","cookie-session":"*","morgan":"*","mocha":"*","should":"*","sinon":"*","jade":"*","underscore":"*","backbone":"*","sharify":"*","backbone-super-sync":"*","browserify":"*","coffeeify":"*","artsy-xapp-middleware":"*","zombie":"*","rewire":"*"},"gitHead":"f581fa4c69270629ce13d71a39f3bd59589bfad2","_id":"artsy-passport@0.1.8","_shasum":"beb41b807781558946726373727f1a09c6fb91ea","_from":".","_npmVersion":"1.4.26","_npmUser":{"name":"zamiang","email":"brennanmoore@gmail.com"},"maintainers":[{"name":"craigspaeth","email":"craigspaeth@gmail.com"},{"name":"zamiang","email":"brennanmoore@gmail.com"}],"dist":{"shasum":"beb41b807781558946726373727f1a09c6fb91ea","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-0.1.8.tgz","integrity":"sha512-jLO1gYvloBd60KDIzYJpUPYkPez9q6/8Z9mD9W2RL8j5PLHs1RK91Naeh1r5iEsnXpLLBXDtkC+AyHM0HsfCBA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICdCLe+tNE6lTsP1HlU7UqMtMC8K1aUTbD7DFQuywGcDAiEAocb3zNKfZmnFv7rQNHXxMv6p0ID12ZsEfaukcYoBVzo="}]},"directories":{}},"1.0.5":{"name":"artsy-passport","version":"1.0.5","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"contributors":[{"name":"Brennan Moore","email":"brennanmoore@gmail.com","url":"http://brennanmoore.com"}],"engines":{"node":">= 0.10.x"},"scripts":{"test":"mocha --recursive","compile":"browserify -t coffeeify example/client.coffee > example/public/client.js","example":"sleep 3 && open http://local.artsy.net:4000 & npm run compile && coffee example/index.coffee"},"dependencies":{"async":"^1.5.0","coffee-script":"^1.9.2","csurf":"^1.8.3","express":"^4.12.3","mailcheck":"^1.1.1","passport":"^0.2.1","passport-facebook":"^2.0.0","passport-linkedin":"^1.0.0","passport-local":"^1.0.0","passport-twitter":"^1.0.3","superagent":"^1.2.0","underscore.string":"^3.2.2"},"devDependencies":{"body-parser":"*","cookie-parser":"*","cookie-session":"*","morgan":"*","mocha":"*","should":"*","sinon":"*","jade":"*","underscore":"*","backbone":"*","sharify":"*","backbone-super-sync":"*","browserify":"*","coffeeify":"*","artsy-xapp":"*","zombie":"*","rewire":"2.2.0"},"gitHead":"24223ce2252cea927800f51db5a93b5f3c0f9d3f","_id":"artsy-passport@1.0.5","_shasum":"c4836e500029e8757364ab35c66b7810bab78f24","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.1","_npmUser":{"name":"craigspaeth","email":"craigspaeth@gmail.com"},"maintainers":[{"name":"craigspaeth","email":"craigspaeth@gmail.com"},{"name":"zamiang","email":"brennanmoore@gmail.com"}],"dist":{"shasum":"c4836e500029e8757364ab35c66b7810bab78f24","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-1.0.5.tgz","integrity":"sha512-BcwzTlf21hBZQTibWoPZGxrKwe0MO7eQOK4xFvqCJGm7q0u7fn7nRYe2Xh241iZdKp4lTgSFhMpIIXLieGaqZg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDVgZaYbc01z57fCRsk2AqcOyTPZ8CzYVihWYUq0QBiFAiEAyGfiHbwUOkbgEIbIMkR3nF6LxP08I5Vn4YG+r0SYH/Y="}]},"directories":{}},"1.0.6":{"name":"artsy-passport","version":"1.0.6","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"contributors":[{"name":"Brennan Moore","email":"brennanmoore@gmail.com","url":"http://brennanmoore.com"}],"engines":{"node":">= 0.10.x"},"scripts":{"test":"mocha --recursive","compile":"browserify -t coffeeify example/client.coffee > example/public/client.js","example":"sleep 3 && open http://local.artsy.net:4000 & npm run compile && coffee example/index.coffee"},"dependencies":{"async":"^1.5.0","coffee-script":"^1.9.2","csurf":"^1.8.3","express":"^4.12.3","mailcheck":"^1.1.1","passport":"^0.2.1","passport-facebook":"^2.0.0","passport-linkedin":"^1.0.0","passport-local":"^1.0.0","passport-twitter":"^1.0.3","superagent":"^1.2.0","underscore.string":"^3.2.2"},"devDependencies":{"body-parser":"*","cookie-parser":"*","cookie-session":"*","morgan":"*","mocha":"*","should":"*","sinon":"*","jade":"*","underscore":"*","backbone":"*","sharify":"*","backbone-super-sync":"*","browserify":"*","coffeeify":"*","artsy-xapp":"*","zombie":"*","rewire":"2.2.0"},"gitHead":"8af075cd5cc4a8e896c972cde5b09f09b05999a9","_id":"artsy-passport@1.0.6","_shasum":"287868a8c1ce095e2cd2f7b343f09728d7d3e5fa","_from":".","_npmVersion":"3.7.3","_nodeVersion":"5.9.1","_npmUser":{"name":"craigspaeth","email":"craigspaeth@gmail.com"},"dist":{"shasum":"287868a8c1ce095e2cd2f7b343f09728d7d3e5fa","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-1.0.6.tgz","integrity":"sha512-C+3lW+A0xNdvZFflHGEKkv28KIVobGHcMYX1xYApPMzkYXjXTZqI0LJPksCNypVYkKv1cd8tL/UbjJP4XrfV0Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAKP7znrOlj/szlcEMyc8DtRWf0QDjyfPKAZsNFt/EKyAiEAyatrRrH+htZi3kKavFGrClu99pE0nq9yS97ZPOfzboQ="}]},"maintainers":[{"name":"craigspaeth","email":"craigspaeth@gmail.com"},{"name":"zamiang","email":"brennanmoore@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/artsy-passport-1.0.6.tgz_1461708894461_0.18989551905542612"},"directories":{}},"1.0.7":{"name":"artsy-passport","version":"1.0.7","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"contributors":[{"name":"Brennan Moore","email":"brennanmoore@gmail.com","url":"http://brennanmoore.com"}],"engines":{"node":">= 0.10.x"},"scripts":{"test":"mocha --recursive","compile":"browserify -t coffeeify example/client.coffee > example/public/client.js","example":"sleep 3 && open http://local.artsy.net:4000 & npm run compile && coffee example/index.coffee"},"dependencies":{"async":"^1.5.0","coffee-script":"^1.9.2","csurf":"^1.8.3","express":"^4.12.3","mailcheck":"^1.1.1","passport":"^0.2.1","passport-facebook":"^2.0.0","passport-linkedin":"^1.0.0","passport-local":"^1.0.0","passport-twitter":"^1.0.3","superagent":"^1.2.0","underscore.string":"^3.2.2"},"devDependencies":{"body-parser":"*","cookie-parser":"*","cookie-session":"*","morgan":"*","mocha":"*","should":"*","sinon":"*","jade":"*","underscore":"*","backbone":"*","sharify":"*","backbone-super-sync":"*","browserify":"*","coffeeify":"*","artsy-xapp":"*","zombie":"*","rewire":"2.2.0"},"gitHead":"c8792e2896ce96f429f873e7a13ef1d9c8e3de49","_id":"artsy-passport@1.0.7","_shasum":"b2bfa64d57c5bcbc9aa2a58eba4fad741b3b31f4","_from":".","_npmVersion":"3.8.7","_nodeVersion":"5.9.1","_npmUser":{"name":"craigspaeth","email":"craigspaeth@gmail.com"},"dist":{"shasum":"b2bfa64d57c5bcbc9aa2a58eba4fad741b3b31f4","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-1.0.7.tgz","integrity":"sha512-HZ1jtGUlXk7NNtSx7PgLiLfC5PnqDjTWqhsc5SkcU33VBNntcb/7mpTZmOZugHLMKr8ongYiHR9jsJRCHKkXvg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHNu8m5pFKN/nqlebPuFSLhv4Lu2F2N8bjBxForN+/jBAiEArSHT0tOudnjA5yNuPsLgPzSQPa9txH/w/GnjDhpOVp8="}]},"maintainers":[{"name":"craigspaeth","email":"craigspaeth@gmail.com"},{"name":"zamiang","email":"brennanmoore@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/artsy-passport-1.0.7.tgz_1461783904002_0.1495425335597247"},"directories":{}},"1.0.8":{"name":"artsy-passport","version":"1.0.8","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"contributors":[{"name":"Brennan Moore","email":"brennanmoore@gmail.com","url":"http://brennanmoore.com"}],"engines":{"node":">= 0.10.x"},"scripts":{"test":"mocha --recursive","compile":"browserify -t coffeeify example/client.coffee > example/public/client.js","example":"sleep 3 && open http://local.artsy.net:4000 & npm run compile && coffee example/index.coffee"},"dependencies":{"async":"^1.5.0","coffee-script":"^1.9.2","csurf":"^1.8.3","express":"^4.12.3","mailcheck":"^1.1.1","passport":"^0.2.1","passport-facebook":"^2.0.0","passport-linkedin":"^1.0.0","passport-local":"^1.0.0","passport-twitter":"^1.0.3","superagent":"^1.2.0","underscore.string":"^3.2.2"},"devDependencies":{"body-parser":"*","cookie-parser":"*","cookie-session":"*","morgan":"*","mocha":"*","should":"*","sinon":"*","jade":"*","underscore":"*","backbone":"*","sharify":"*","backbone-super-sync":"*","browserify":"*","coffeeify":"*","artsy-xapp":"*","zombie":"*","rewire":"2.2.0"},"gitHead":"672b30e16f82a923b0ae24f44beb49ea928fe277","_id":"artsy-passport@1.0.8","_shasum":"e2183b745f22e391f8d5567d14afe1d35d277ad7","_from":".","_npmVersion":"3.8.7","_nodeVersion":"5.9.1","_npmUser":{"name":"craigspaeth","email":"craigspaeth@gmail.com"},"dist":{"shasum":"e2183b745f22e391f8d5567d14afe1d35d277ad7","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-1.0.8.tgz","integrity":"sha512-/k9vfT30HlyQkYrUxnOD41uDUkMrYEBGTuCktUcXhQ6FKtz5gVTaGvN7hrNsHoZt/LGEp45kH5yCWuydiSSWNQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDg9pZFGurGwYWMj98qhlb+FyV+CxVrgL4YRvxGPmIvCwIhAMvE9Qqi90M98Mimo3aHEEwaGFnvYksY3atYQKzht8Rf"}]},"maintainers":[{"name":"craigspaeth","email":"craigspaeth@gmail.com"},{"name":"zamiang","email":"brennanmoore@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/artsy-passport-1.0.8.tgz_1461785623926_0.2313546750228852"},"directories":{}},"1.1.0":{"name":"artsy-passport","version":"1.1.0","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"contributors":[{"name":"Brennan Moore","email":"brennanmoore@gmail.com","url":"http://brennanmoore.com"}],"engines":{"node":">= 0.10.x"},"scripts":{"test":"mocha --recursive","compile":"browserify -t coffeeify example/client.coffee > example/public/client.js","example":"sleep 3 && open http://local.artsy.net:4000 & npm run compile && coffee example/index.coffee"},"dependencies":{"async":"^1.5.0","coffee-script":"^1.9.2","csurf":"^1.8.3","express":"^4.12.3","mailcheck":"^1.1.1","passport":"^0.2.1","passport-facebook":"^2.0.0","passport-linkedin":"^1.0.0","passport-local":"^1.0.0","passport-twitter":"^1.0.3","superagent":"^1.2.0","underscore.string":"^3.2.2"},"devDependencies":{"body-parser":"*","cookie-parser":"*","cookie-session":"*","morgan":"*","mocha":"*","should":"*","sinon":"*","jade":"*","underscore":"*","backbone":"*","sharify":"*","backbone-super-sync":"*","browserify":"*","coffeeify":"*","artsy-xapp":"*","zombie":"*","rewire":"2.2.0"},"gitHead":"689c48c65f568c9ae82d81e288f4dcbf4d1283b7","_id":"artsy-passport@1.1.0","_shasum":"5b31a4eaad2becdae635bb32cc21996271bf004f","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"craigspaeth","email":"craigspaeth@gmail.com"},"maintainers":[{"name":"craigspaeth","email":"craigspaeth@gmail.com"},{"name":"zamiang","email":"brennanmoore@gmail.com"}],"dist":{"shasum":"5b31a4eaad2becdae635bb32cc21996271bf004f","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-1.1.0.tgz","integrity":"sha512-e7d8La9oL1WrBai+ue9n/++lMKu908uy4RNC1fEa5LSTaLbGe7E7LL7zeAWVM/T34GxdAuoSxCeY+HZoa9l/5g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDmUm2tQXDZpr256B6rI5avW7eWb4D1yfJIC1paxMrNqAiEA30ECVGOiszxT3IhGY+lKKOuMoZ3rM989k4BAk8NsIIc="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/artsy-passport-1.1.0.tgz_1463427448049_0.031116037163883448"},"directories":{}},"1.1.1":{"name":"artsy-passport","version":"1.1.1","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"contributors":[{"name":"Brennan Moore","email":"brennanmoore@gmail.com","url":"http://brennanmoore.com"}],"engines":{"node":">= 0.10.x"},"scripts":{"test":"mocha --recursive","compile":"browserify -t coffeeify example/client.coffee > example/public/client.js","example":"sleep 3 && open http://local.artsy.net:4000 & npm run compile && coffee example/index.coffee"},"dependencies":{"async":"^1.5.0","coffee-script":"^1.9.2","csurf":"^1.8.3","express":"^4.12.3","mailcheck":"^1.1.1","passport":"^0.2.1","passport-facebook":"^2.0.0","passport-linkedin":"^1.0.0","passport-local":"^1.0.0","passport-twitter":"^1.0.3","superagent":"^1.2.0","underscore.string":"^3.2.2"},"devDependencies":{"body-parser":"*","cookie-parser":"*","cookie-session":"*","morgan":"*","mocha":"*","should":"*","sinon":"*","jade":"*","underscore":"*","backbone":"*","sharify":"*","backbone-super-sync":"*","browserify":"*","coffeeify":"*","artsy-xapp":"*","zombie":"*","rewire":"2.2.0"},"gitHead":"fa89b6dc7043cc5b14a2fcaf0b348efef1dc8587","_id":"artsy-passport@1.1.1","_shasum":"8f0494406ef0c946821259324979db969703ddaa","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"craigspaeth","email":"craigspaeth@gmail.com"},"maintainers":[{"name":"craigspaeth","email":"craigspaeth@gmail.com"},{"name":"zamiang","email":"brennanmoore@gmail.com"}],"dist":{"shasum":"8f0494406ef0c946821259324979db969703ddaa","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-1.1.1.tgz","integrity":"sha512-dA3kThx2lGgoQCDQZAcuCHdTe+QFIYrbRuAVwt2aWdihDmNkx9swTrg5uRG9x5ppDqDF/mvP/FFeK7GIngsSYQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCudzRZ/fJ2rBCpk651VebYzoJluW2ycCxoUn6m7z+WtwIgASR5U72wijDZPETYnS3H72F00a42vJCzHFHM0dbS7KQ="}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/artsy-passport-1.1.1.tgz_1464802779704_0.9212858062237501"},"directories":{}},"1.1.2":{"name":"artsy-passport","version":"1.1.2","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"contributors":[{"name":"Brennan Moore","email":"brennanmoore@gmail.com","url":"http://brennanmoore.com"}],"engines":{"node":">= 0.10.x"},"scripts":{"test":"mocha --recursive","compile":"browserify -t coffeeify example/client.coffee > example/public/client.js","example":"sleep 3 && open http://local.artsy.net:4000 & npm run compile && coffee example/index.coffee"},"dependencies":{"async":"^1.5.0","coffee-script":"^1.9.2","csurf":"^1.8.3","express":"^4.12.3","mailcheck":"^1.1.1","passport":"^0.2.1","passport-facebook":"^2.0.0","passport-linkedin":"^1.0.0","passport-local":"^1.0.0","passport-twitter":"^1.0.3","superagent":"^1.2.0","underscore.string":"^3.2.2"},"devDependencies":{"body-parser":"*","cookie-parser":"*","cookie-session":"*","morgan":"*","mocha":"*","should":"*","sinon":"*","jade":"*","underscore":"*","backbone":"*","sharify":"*","backbone-super-sync":"*","browserify":"*","coffeeify":"*","artsy-xapp":"*","zombie":"*","rewire":"2.2.0"},"gitHead":"d3309d63cf73255ba7236e7b5bd7ed97f86c7775","_id":"artsy-passport@1.1.2","_shasum":"bbfe3a8f0884fcee85975a3280944ee1c298fbb0","_from":".","_npmVersion":"3.8.6","_nodeVersion":"6.0.0","_npmUser":{"name":"craigspaeth","email":"craigspaeth@gmail.com"},"maintainers":[{"name":"craigspaeth","email":"craigspaeth@gmail.com"},{"name":"zamiang","email":"brennanmoore@gmail.com"}],"dist":{"shasum":"bbfe3a8f0884fcee85975a3280944ee1c298fbb0","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-1.1.2.tgz","integrity":"sha512-/Mu1+QxuW8hTbXG/wlZKEUPCRXk0UrkVOnrqrdCvz3RYISHpOkssoC6qe15jlW5gbjv1cwoKzvCkPNIMrINOvg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAbNF+flJKRPBvO37IfrBDpLZHoayr5WIgmx0b0v1yBYAiEA3Z00kwa/wONJ/uFKf0Z5zPQuZoNNzqM65f4mzhpxREk="}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/artsy-passport-1.1.2.tgz_1468604745415_0.2439543732907623"},"directories":{}},"1.2.0":{"name":"artsy-passport","version":"1.2.0","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"contributors":[{"name":"Brennan Moore","email":"brennanmoore@gmail.com","url":"http://brennanmoore.com"}],"engines":{"node":">= 0.10.x"},"scripts":{"test":"mocha --recursive","compile":"browserify -t coffeeify example/client.coffee > example/public/client.js","example":"sleep 3 && open http://local.artsy.net:4000 & npm run compile && coffee example/index.coffee"},"dependencies":{"analytics-node":"^2.1.0","async":"^1.5.0","coffee-script":"^1.9.2","csurf":"^1.8.3","express":"^4.12.3","mailcheck":"^1.1.1","passport":"^0.2.1","passport-facebook":"^2.0.0","passport-linkedin":"^1.0.0","passport-local":"^1.0.0","passport-twitter":"^1.0.3","superagent":"^1.2.0","underscore.string":"^3.2.2"},"devDependencies":{"body-parser":"*","cookie-parser":"*","cookie-session":"*","morgan":"*","mocha":"*","should":"*","sinon":"*","jade":"*","underscore":"*","backbone":"*","sharify":"*","backbone-super-sync":"*","browserify":"*","coffeeify":"*","artsy-xapp":"*","zombie":"*","rewire":"2.2.0"},"gitHead":"a8baf834ccaba1e47dffa1e046440956f703e5cc","_id":"artsy-passport@1.2.0","_shasum":"3e37d708495c2c87d3f6e40a67518017d7e2c58b","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"craigspaeth","email":"craigspaeth@gmail.com"},"dist":{"shasum":"3e37d708495c2c87d3f6e40a67518017d7e2c58b","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-1.2.0.tgz","integrity":"sha512-QGJK6Q5ngB0P9JKa3gGyHcipgK0qR5dU767j1OMBvQBFcQbo/VDYkhnQ/Fj6JkWLXQHee5QjjpeJENnrXIm9XQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCzby3R4tzcYnksAn4Sk5m7RFkhlktoNWv4MgOns1AeTAIgB+eotSkyiD3xuCte09wWrjTO9/OJ7dt3MUkmgs1DfQY="}]},"maintainers":[{"name":"craigspaeth","email":"craigspaeth@gmail.com"},{"name":"zamiang","email":"brennanmoore@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/artsy-passport-1.2.0.tgz_1479768478571_0.89853928796947"},"directories":{}},"1.2.1":{"name":"artsy-passport","version":"1.2.1","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"contributors":[{"name":"Brennan Moore","email":"brennanmoore@gmail.com","url":"http://brennanmoore.com"}],"engines":{"node":">= 0.10.x"},"scripts":{"test":"mocha --recursive","compile":"browserify -t coffeeify example/client.coffee > example/public/client.js","example":"sleep 3 && open http://local.artsy.net:4000 & npm run compile && coffee example/index.coffee"},"dependencies":{"analytics-node":"^2.1.0","async":"^1.5.0","coffee-script":"^1.9.2","csurf":"^1.8.3","express":"^4.12.3","mailcheck":"^1.1.1","passport":"^0.2.1","passport-facebook":"^2.0.0","passport-linkedin":"^1.0.0","passport-local":"^1.0.0","passport-twitter":"^1.0.3","superagent":"^1.2.0","underscore.string":"^3.2.2"},"devDependencies":{"body-parser":"*","cookie-parser":"*","cookie-session":"*","morgan":"*","mocha":"*","should":"*","sinon":"*","jade":"*","underscore":"*","backbone":"*","sharify":"*","backbone-super-sync":"*","browserify":"*","coffeeify":"*","artsy-xapp":"*","zombie":"*","rewire":"2.2.0"},"gitHead":"f97ceb889550a1f77933a2a28b30ada13211b5ea","_id":"artsy-passport@1.2.1","_shasum":"f8f7b92043166f2509189c1a4d63fa648b7bd55b","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"craigspaeth","email":"craigspaeth@gmail.com"},"dist":{"shasum":"f8f7b92043166f2509189c1a4d63fa648b7bd55b","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-1.2.1.tgz","integrity":"sha512-AJb5NVTbCh7sw6Y0yNBss+BFTQsmyS4wGzRdlSYYGGfwDgSXA5uPpL1icagrsyByeSrJpfw/ryVQytIyYE3rXg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCA/yL+cveXnovbLSu84WWFPiVOM00HPlcweGSdXjrfmQIgGSjhXYwDdI3zazFtEcdJA1CdX3Wj8zM4xDnWu0vlwno="}]},"maintainers":[{"name":"craigspaeth","email":"craigspaeth@gmail.com"},{"name":"zamiang","email":"brennanmoore@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/artsy-passport-1.2.1.tgz_1479770651710_0.3994115393143147"},"directories":{}},"1.3.0":{"name":"artsy-passport","version":"1.3.0","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"contributors":[{"name":"Brennan Moore","email":"brennanmoore@gmail.com","url":"http://brennanmoore.com"}],"engines":{"node":">= 0.10.x"},"scripts":{"test":"mocha --recursive","compile":"browserify -t coffeeify example/client.coffee > example/public/client.js","example":"sleep 3 && open http://local.artsy.net:4000 & npm run compile && coffee example/index.coffee"},"dependencies":{"analytics-node":"^2.1.0","async":"^1.5.0","coffee-script":"^1.9.2","csurf":"^1.8.3","express":"^4.12.3","mailcheck":"^1.1.1","passport":"^0.2.1","passport-facebook":"^2.0.0","passport-linkedin":"^1.0.0","passport-local":"^1.0.0","passport-twitter":"^1.0.3","superagent":"^1.2.0","underscore.string":"^3.2.2"},"devDependencies":{"body-parser":"*","cookie-parser":"*","cookie-session":"*","morgan":"*","mocha":"*","should":"*","sinon":"*","jade":"*","underscore":"*","backbone":"*","sharify":"*","backbone-super-sync":"*","browserify":"*","coffeeify":"*","artsy-xapp":"*","zombie":"*","rewire":"2.2.0"},"gitHead":"276ff7e94acf939b25b914bdef860ac51d772f43","_id":"artsy-passport@1.3.0","_shasum":"3b925923972f525492f8c0799828e881b3738537","_from":".","_npmVersion":"4.0.1","_nodeVersion":"6.9.0","_npmUser":{"name":"craigspaeth","email":"craigspaeth@gmail.com"},"maintainers":[{"name":"craigspaeth","email":"craigspaeth@gmail.com"},{"name":"zamiang","email":"brennanmoore@gmail.com"}],"dist":{"shasum":"3b925923972f525492f8c0799828e881b3738537","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-1.3.0.tgz","integrity":"sha512-FA7mlbqDgQzy1fnnwu/WHvcltrSnvwCY5Kj5k9czyAtBQeQOKclSUPQa9FgqUSic8keFCu0a+Bz34VJchWtRbA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDY8+AVoVl0Lel5Krkw/PRfXt6ZBBmErYFDzzsWT5Q2rAIhAIvVxje+tn5IRD7Cy0xE2aZaQZtYcoTIHGj1zHVli1KY"}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/artsy-passport-1.3.0.tgz_1480461503655_0.23563820915296674"},"directories":{}},"1.4.0":{"name":"artsy-passport","version":"1.4.0","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"contributors":[{"name":"Brennan Moore","email":"brennanmoore@gmail.com","url":"http://brennanmoore.com"}],"engines":{"node":">= 0.10.x"},"scripts":{"test":"mocha --recursive","compile":"browserify -t coffeeify example/client.coffee > example/public/client.js","example":"sleep 3 && open http://local.artsy.net:4000 & npm run compile && coffee example/index.coffee"},"dependencies":{"analytics-node":"^2.1.0","async":"^1.5.0","coffee-script":"^1.9.2","csurf":"^1.8.3","express":"^4.12.3","mailcheck":"^1.1.1","passport":"^0.2.1","passport-facebook":"^2.0.0","passport-linkedin":"^1.0.0","passport-local":"^1.0.0","passport-twitter":"^1.0.3","superagent":"^1.2.0","underscore.string":"^3.2.2"},"devDependencies":{"body-parser":"*","cookie-parser":"*","cookie-session":"*","morgan":"*","mocha":"*","should":"*","sinon":"*","jade":"*","underscore":"*","backbone":"*","sharify":"*","backbone-super-sync":"*","browserify":"*","coffeeify":"*","artsy-xapp":"*","zombie":"*","rewire":"2.2.0"},"gitHead":"91fe6c1516cfdf3d4365ac7dc7a1da204617d627","_id":"artsy-passport@1.4.0","_shasum":"269f714b06ff38a8ae41a2447793284962e4e699","_from":".","_npmVersion":"4.0.1","_nodeVersion":"6.9.0","_npmUser":{"name":"craigspaeth","email":"craigspaeth@gmail.com"},"maintainers":[{"name":"craigspaeth","email":"craigspaeth@gmail.com"},{"name":"zamiang","email":"brennanmoore@gmail.com"}],"dist":{"shasum":"269f714b06ff38a8ae41a2447793284962e4e699","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-1.4.0.tgz","integrity":"sha512-JN0Dk3raOTqBVf53wzXz8mkMG4WAfowqjMk+i9c+acEQC4B9oGCl++/Bu0ZpO+zSt0OuIJt0mmD1g/8z4ramOA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGNt027TOduVH8vx0F64W8jvHvwuohRKCy0mP8S1DnkrAiB718MEuz9ofo9lIrMroTzYXUohVhCKaZfUb7KGRsZEIQ=="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/artsy-passport-1.4.0.tgz_1484163992433_0.009481515502557158"},"directories":{}},"1.5.0":{"name":"artsy-passport","version":"1.5.0","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"contributors":[{"name":"Brennan Moore","email":"brennanmoore@gmail.com","url":"http://brennanmoore.com"}],"engines":{"node":">= 0.10.x"},"scripts":{"test":"mocha --recursive","compile":"browserify -t coffeeify example/client.coffee > example/public/client.js","example":"sleep 3 && open http://local.artsy.net:4000 & npm run compile && coffee example/index.coffee"},"dependencies":{"analytics-node":"^2.1.0","async":"^1.5.0","coffee-script":"^1.9.2","csurf":"^1.8.3","express":"^4.12.3","mailcheck":"^1.1.1","passport":"^0.2.1","passport-facebook":"^2.0.0","passport-linkedin":"^1.0.0","passport-local":"^1.0.0","passport-twitter":"^1.0.3","superagent":"^1.2.0","underscore.string":"^3.2.2"},"devDependencies":{"body-parser":"*","cookie-parser":"*","cookie-session":"*","morgan":"*","mocha":"*","should":"*","sinon":"*","jade":"*","underscore":"*","backbone":"*","sharify":"*","backbone-super-sync":"*","browserify":"*","coffeeify":"*","artsy-xapp":"*","zombie":"*","rewire":"2.2.0"},"gitHead":"c22154cf6f7dc422bd3bc80961f87b8c4e3abc9a","_id":"artsy-passport@1.5.0","_shasum":"74e4dcb5dbfed8c29ac72bc0f5c2f41cf379a31b","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"craigspaeth","email":"craigspaeth@gmail.com"},"dist":{"shasum":"74e4dcb5dbfed8c29ac72bc0f5c2f41cf379a31b","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-1.5.0.tgz","integrity":"sha512-Olnbo2P1XLezd1S6BLylUrqEPdMmsMbX4LyycsjGtVjUttv1ql9zzDnoPE/y7YHeyIZun1DcbMtaCkinLEbOSw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBoI3xJ4Y6VnN0cYqY7H+asd7JmP8Esu7177COEb1GF4AiAboiRkjuSgfmOppa26BexOrlNy5+s2VdBZ+QZHNG8t2Q=="}]},"maintainers":[{"name":"craigspaeth","email":"craigspaeth@gmail.com"},{"name":"zamiang","email":"brennanmoore@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/artsy-passport-1.5.0.tgz_1485383929644_0.7945731715299189"},"directories":{}},"1.5.1":{"name":"artsy-passport","version":"1.5.1","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"contributors":[{"name":"Brennan Moore","email":"brennanmoore@gmail.com","url":"http://brennanmoore.com"}],"engines":{"node":">= 0.10.x"},"scripts":{"test":"mocha --recursive","compile":"browserify -t coffeeify example/client.coffee > example/public/client.js","example":"sleep 3 && open http://local.artsy.net:4000 & npm run compile && coffee example/index.coffee"},"dependencies":{"analytics-node":"^2.1.0","async":"^1.5.0","coffee-script":"^1.9.2","csurf":"^1.8.3","express":"^4.12.3","mailcheck":"^1.1.1","passport":"^0.2.1","passport-facebook":"^2.0.0","passport-linkedin":"^1.0.0","passport-local":"^1.0.0","passport-twitter":"^1.0.3","superagent":"^1.2.0","underscore.string":"^3.2.2"},"devDependencies":{"body-parser":"*","cookie-parser":"*","cookie-session":"*","morgan":"*","mocha":"*","should":"*","sinon":"*","jade":"*","underscore":"*","backbone":"*","sharify":"*","backbone-super-sync":"*","browserify":"*","coffeeify":"*","artsy-xapp":"*","zombie":"*","rewire":"2.2.0"},"gitHead":"452e2704260bf8e9c759c7d89a1783582d4d817c","_id":"artsy-passport@1.5.1","_shasum":"83bfd2ec224d9a16261fa92e6ce96f9c1a92f660","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"broskoski","email":"cab@are.na"},"dist":{"shasum":"83bfd2ec224d9a16261fa92e6ce96f9c1a92f660","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-1.5.1.tgz","integrity":"sha512-x9vQh08uNF+mK+DhW022+z2STOUXOrHfoV8IkaP2cwHnQ/c+PNSU2IS0yAgktkXEf141Yt5pK2pPh/WtaPzx9w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5LjfYeDj850FCs9J9sdshqhAhmUIipkrDbudi+qANNAIhAL5/9PtOnNL3WT3CoT74wuson5gqWht/4RKVhmu5rXlq"}]},"maintainers":[{"name":"broskoski","email":"cab@are.na"},{"name":"craigspaeth","email":"craigspaeth@gmail.com"},{"name":"zamiang","email":"brennanmoore@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/artsy-passport-1.5.1.tgz_1485464144276_0.5980271936859936"},"directories":{}},"1.5.2":{"name":"artsy-passport","version":"1.5.2","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"contributors":[{"name":"Brennan Moore","email":"brennanmoore@gmail.com","url":"http://brennanmoore.com"}],"engines":{"node":">= 0.10.x"},"scripts":{"test":"mocha --recursive","compile":"browserify -t coffeeify example/client.coffee > example/public/client.js","example":"sleep 3 && open http://local.artsy.net:4000 & npm run compile && coffee example/index.coffee"},"dependencies":{"analytics-node":"^2.1.0","async":"^1.5.0","coffee-script":"^1.9.2","csurf":"^1.8.3","express":"^4.12.3","mailcheck":"^1.1.1","passport":"^0.2.1","passport-facebook":"^2.0.0","passport-linkedin":"^1.0.0","passport-local":"^1.0.0","passport-twitter":"^1.0.3","superagent":"^1.2.0","underscore.string":"^3.2.2"},"devDependencies":{"body-parser":"*","cookie-parser":"*","cookie-session":"*","morgan":"*","mocha":"*","should":"*","sinon":"*","jade":"*","underscore":"*","backbone":"*","sharify":"*","backbone-super-sync":"*","browserify":"*","coffeeify":"*","artsy-xapp":"*","zombie":"*","rewire":"2.2.0"},"gitHead":"1ef7826073b2e1fe6514c7849e3ca96f23aa78a1","_id":"artsy-passport@1.5.2","_shasum":"82681c535dbc89d69559acb0b2358286a79682cd","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"broskoski","email":"cab@are.na"},"dist":{"shasum":"82681c535dbc89d69559acb0b2358286a79682cd","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-1.5.2.tgz","integrity":"sha512-oZLlEZ8kbGIDJxQcDT87yQOk3ly9r16ROYRuGtNvbeUy3NRDljVeex9kTt2StRv4vS8tEc7aBPcHmfCPy6nykg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHOaD2zidP19Vb9udL3HqmtXvTSCwBy++z80eXXUcIvOAiB9esZqUkK8H3HPsC7vvBHYUnMAhH8XAMa/YgYvcMHQvw=="}]},"maintainers":[{"name":"broskoski","email":"cab@are.na"},{"name":"craigspaeth","email":"craigspaeth@gmail.com"},{"name":"zamiang","email":"brennanmoore@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/artsy-passport-1.5.2.tgz_1485467908211_0.37964997719973326"},"directories":{}},"1.6.0":{"name":"artsy-passport","version":"1.6.0","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"contributors":[{"name":"Brennan Moore","email":"brennanmoore@gmail.com","url":"http://brennanmoore.com"}],"engines":{"node":">= 0.10.x"},"scripts":{"test":"mocha test/app && mocha test/passport","compile":"browserify -t coffeeify example/client.coffee > example/public/client.js","example":"sleep 3 && open http://local.artsy.net:4000 & npm run compile && coffee example/index.coffee"},"dependencies":{"analytics-node":"^2.1.0","async":"^1.5.0","coffee-script":"^1.9.2","csurf":"^1.8.3","dotenv":"^4.0.0","express":"^4.12.3","mailcheck":"^1.1.1","passport":"^0.2.1","passport-facebook":"^2.0.0","passport-linkedin":"^1.0.0","passport-local":"^1.0.0","passport-twitter":"^1.0.3","superagent":"^1.2.0","underscore.string":"^3.2.2"},"devDependencies":{"body-parser":"*","cookie-parser":"*","cookie-session":"*","morgan":"*","mocha":"*","should":"*","sinon":"*","jade":"*","underscore":"*","backbone":"*","sharify":"*","backbone-super-sync":"*","browserify":"*","coffeeify":"*","artsy-xapp":"*","zombie":"*","rewire":"2.2.0"},"gitHead":"40dce9176f80c7829396495437236db7e70fa04e","_id":"artsy-passport@1.6.0","_shasum":"e6254b4a47b94c023848dcb5eb27692d57f21a91","_from":".","_npmVersion":"4.0.1","_nodeVersion":"6.9.0","_npmUser":{"name":"craigspaeth","email":"craigspaeth@gmail.com"},"maintainers":[{"name":"broskoski","email":"cab@are.na"},{"name":"craigspaeth","email":"craigspaeth@gmail.com"},{"name":"zamiang","email":"brennanmoore@gmail.com"}],"dist":{"shasum":"e6254b4a47b94c023848dcb5eb27692d57f21a91","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-1.6.0.tgz","integrity":"sha512-/VnPZ75FRkWfbKIK9b1cfWFUsSqoFU6m1EMLZZH4GNiqYVfmQ1sbr068dqd4Xmz41cLV3hFCF8J5U7xBCevIZA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCvS9MmsLkj5i36CTWNjTyb+gvVXuqpY3yTl2fhho5I5QIgFergWsZ1faW5vLnEV3XxU3oKwVclNsjmAqXW/TDo3eU="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/artsy-passport-1.6.0.tgz_1485477629121_0.023239707807078958"},"directories":{}},"1.6.1":{"name":"artsy-passport","version":"1.6.1","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"contributors":[{"name":"Brennan Moore","email":"brennanmoore@gmail.com","url":"http://brennanmoore.com"}],"engines":{"node":">= 0.10.x"},"scripts":{"test":"mocha test/app && mocha test/passport","compile":"browserify -t coffeeify example/client.coffee > example/public/client.js","example":"sleep 3 && open http://local.artsy.net:4000 & npm run compile && coffee example/index.coffee"},"dependencies":{"analytics-node":"^2.1.0","async":"^1.5.0","coffee-script":"^1.9.2","csurf":"^1.8.3","dotenv":"^4.0.0","express":"^4.12.3","mailcheck":"^1.1.1","passport":"^0.2.1","passport-facebook":"^2.0.0","passport-linkedin":"^1.0.0","passport-local":"^1.0.0","passport-twitter":"^1.0.3","superagent":"^1.2.0","underscore.string":"^3.2.2"},"devDependencies":{"body-parser":"*","cookie-parser":"*","cookie-session":"*","morgan":"*","mocha":"*","should":"*","sinon":"*","jade":"*","underscore":"*","backbone":"*","sharify":"*","backbone-super-sync":"*","browserify":"*","coffeeify":"*","artsy-xapp":"*","zombie":"*","rewire":"2.2.0"},"gitHead":"f111f17bdc004d01a88a7d577dd29a0a9eac9336","_id":"artsy-passport@1.6.1","_shasum":"82aad067999dfcdd929f3e33ed588ce1809762bd","_from":".","_npmVersion":"4.0.1","_nodeVersion":"6.9.0","_npmUser":{"name":"craigspaeth","email":"craigspaeth@gmail.com"},"maintainers":[{"name":"broskoski","email":"cab@are.na"},{"name":"craigspaeth","email":"craigspaeth@gmail.com"},{"name":"zamiang","email":"brennanmoore@gmail.com"}],"dist":{"shasum":"82aad067999dfcdd929f3e33ed588ce1809762bd","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-1.6.1.tgz","integrity":"sha512-5+P0aehSDZWPWKW9wSVZYYffT6cLjVctCI0sKKJLIvKi4cARIvYgEzSnIRsHLmuzjOxHOEWdH0NIoSWKEV0+/g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDfMhh6QDjI4VvF+9hiF/3t/ALgpbHcgD008XtHFg9C4gIgY2dvyMRmS5AE9T45s9RotDgnx2u67pKEZUG3L9nDjUA="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/artsy-passport-1.6.1.tgz_1487195640059_0.34684893861413"},"directories":{}},"1.7.0":{"name":"artsy-passport","version":"1.7.0","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"contributors":[{"name":"Brennan Moore","email":"brennanmoore@gmail.com","url":"http://brennanmoore.com"}],"engines":{"node":">= 0.10.x"},"scripts":{"test":"mocha test/app && mocha test/passport","compile":"browserify -t coffeeify example/client.coffee > example/public/client.js","example":"sleep 3 && open http://local.artsy.net:4000 & npm run compile && coffee example/index.coffee"},"dependencies":{"analytics-node":"^2.1.0","async":"^1.5.0","coffee-script":"^1.9.2","csurf":"^1.8.3","dotenv":"^4.0.0","express":"^4.12.3","mailcheck":"^1.1.1","passport":"^0.2.1","passport-facebook":"^2.0.0","passport-linkedin":"^1.0.0","passport-local":"^1.0.0","passport-twitter":"^1.0.3","superagent":"^1.2.0","underscore.string":"^3.2.2"},"devDependencies":{"body-parser":"*","cookie-parser":"*","cookie-session":"*","morgan":"*","mocha":"*","should":"*","sinon":"*","jade":"*","underscore":"*","backbone":"*","sharify":"*","backbone-super-sync":"*","browserify":"*","coffeeify":"*","artsy-xapp":"*","zombie":"*","rewire":"2.2.0"},"gitHead":"3740c587bdad3ec667b93dcb759cc77dd0c192da","_id":"artsy-passport@1.7.0","_shasum":"d5fc9bc5e761806bcd6328ae31bb79a6b2c164d6","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.0","_npmUser":{"name":"craigspaeth","email":"craigspaeth@gmail.com"},"maintainers":[{"name":"broskoski","email":"cab@are.na"},{"name":"craigspaeth","email":"craigspaeth@gmail.com"},{"name":"zamiang","email":"brennanmoore@gmail.com"}],"dist":{"shasum":"d5fc9bc5e761806bcd6328ae31bb79a6b2c164d6","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-1.7.0.tgz","integrity":"sha512-rx0lnOyxBCPDrALB70Tk+er+dTJ/bHs/zFA2K5tVRc6xxsEfSMNQGJZW8vROh/aDengx637jr8qwWnuFMvw0/Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID6FPwhZh0MenetTt++Ba8yAZaZd+e/oEmwega/s8QYXAiBJ/6+N0sYfnD9fg6Ao9WVHMH4f/zpuJT926ji0H5DtOQ=="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/artsy-passport-1.7.0.tgz_1492786156118_0.14039014629088342"},"directories":{}},"1.7.2":{"name":"artsy-passport","version":"1.7.2","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"contributors":[{"name":"Brennan Moore","email":"brennanmoore@gmail.com","url":"http://brennanmoore.com"}],"engines":{"node":">= 0.10.x"},"scripts":{"test":"mocha test/app && mocha test/passport","compile":"browserify -t coffeeify example/client.coffee > example/public/client.js","example":"sleep 3 && open http://local.artsy.net:4000 & npm run compile && coffee example/index.coffee"},"dependencies":{"analytics-node":"^2.1.0","async":"^1.5.0","coffee-script":"^1.9.2","csurf":"^1.8.3","dotenv":"^4.0.0","express":"^4.12.3","mailcheck":"^1.1.1","passport":"^0.2.1","passport-facebook":"^2.0.0","passport-linkedin":"^1.0.0","passport-local":"^1.0.0","passport-twitter":"^1.0.3","superagent":"^1.2.0","underscore.string":"^3.2.2"},"devDependencies":{"body-parser":"*","cookie-parser":"*","cookie-session":"*","morgan":"*","mocha":"*","should":"*","sinon":"*","jade":"*","underscore":"*","backbone":"*","sharify":"*","backbone-super-sync":"*","browserify":"*","coffeeify":"*","artsy-xapp":"*","zombie":"*","rewire":"2.2.0"},"gitHead":"319dd4136df461bd655fe7c35899335116329caf","_id":"artsy-passport@1.7.2","_shasum":"d5ae66a1024b31f0b07a48cebe9cbad1e2aa3ed0","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.0","_npmUser":{"name":"craigspaeth","email":"craigspaeth@gmail.com"},"maintainers":[{"name":"broskoski","email":"cab@are.na"},{"name":"craigspaeth","email":"craigspaeth@gmail.com"},{"name":"zamiang","email":"brennanmoore@gmail.com"}],"dist":{"shasum":"d5ae66a1024b31f0b07a48cebe9cbad1e2aa3ed0","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-1.7.2.tgz","integrity":"sha512-e478dkIH2yrL8DWB1nw0vtIKmzRQmgdMDN9yE+reVJPYWK46sxvetOAx8O8ZngG0mgRUFRgqdJxDCqDq71qKhw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICfi/2V8oTSK4kP3TxPHUMQ1uc/ZBtpjT9I4SQ6LKgHiAiBFSyXb8zhkXPCwwOAVLNocIkNxHwOGqTF0ze9U2v9s9A=="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/artsy-passport-1.7.2.tgz_1492791302988_0.8061441401951015"},"directories":{}},"1.7.4":{"name":"artsy-passport","version":"1.7.4","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"contributors":[{"name":"Brennan Moore","email":"brennanmoore@gmail.com","url":"http://brennanmoore.com"}],"engines":{"node":">= 0.10.x"},"scripts":{"test":"mocha test/app && mocha test/passport","compile":"browserify -t coffeeify example/client.coffee > example/public/client.js","example":"sleep 3 && open http://local.artsy.net:4000 & npm run compile && coffee example/index.coffee"},"dependencies":{"analytics-node":"^2.1.0","async":"^1.5.0","coffee-script":"^1.9.2","csurf":"^1.8.3","dotenv":"^4.0.0","express":"^4.12.3","mailcheck":"^1.1.1","passport":"^0.2.1","passport-facebook":"^2.0.0","passport-linkedin":"^1.0.0","passport-local":"^1.0.0","passport-twitter":"^1.0.3","superagent":"^1.2.0","underscore.string":"^3.2.2"},"devDependencies":{"body-parser":"*","cookie-parser":"*","cookie-session":"*","morgan":"*","mocha":"*","should":"*","sinon":"*","jade":"*","underscore":"*","backbone":"*","sharify":"*","backbone-super-sync":"*","browserify":"*","coffeeify":"*","artsy-xapp":"*","zombie":"*","rewire":"2.2.0"},"gitHead":"31922af88cf33c0d313d0e38f237a377daac82d3","_id":"artsy-passport@1.7.4","_shasum":"6e7e32c38e41f223e21f4a70a480022278782d3c","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.2","_npmUser":{"name":"craigspaeth","email":"craigspaeth@gmail.com"},"maintainers":[{"name":"broskoski","email":"cab@are.na"},{"name":"craigspaeth","email":"craigspaeth@gmail.com"},{"name":"zamiang","email":"brennanmoore@gmail.com"}],"dist":{"shasum":"6e7e32c38e41f223e21f4a70a480022278782d3c","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-1.7.4.tgz","integrity":"sha512-VAVZa7u9RfSzdScMcB7ZkIbpDmtN3CypsfrOhottICr+4O/ZRFr3KKwqrSYBd12cAcbcx8Rn9fyEXxfpsxniAA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBTqqsexu+U9nHikdGiS4I9ia6uBRKAZPc/QkOzgxMGiAiEAne/8z7wzx9NHTlx2OLD7uhBmLqg3Gyqgbfq8d6Qcc7o="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/artsy-passport-1.7.4.tgz_1494451979405_0.052696602419018745"},"directories":{}},"2.0.0":{"name":"artsy-passport","version":"2.0.0","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"contributors":[{"name":"Brennan Moore","email":"brennanmoore@gmail.com","url":"http://brennanmoore.com"}],"engines":{"node":">= 0.10.x"},"main":"dist/index.js","scripts":{"test":"mocha test/app && mocha test/passport","compile":"browserify -t coffeeify lib/index.coffee > dist/index.js","compile-example":"browserify -t coffeeify example/client.coffee > example/public/client.js","example":"sleep 3 && open http://local.artsy.net:4000 & npm run compile && coffee example/index.coffee"},"dependencies":{"analytics-node":"^2.1.0","async":"^1.5.0","csurf":"^1.8.3","dotenv":"^4.0.0","express":"^4.12.3","mailcheck":"^1.1.1","passport":"^0.2.1","passport-facebook":"^2.0.0","passport-linkedin":"^1.0.0","passport-local":"^1.0.0","passport-twitter":"^1.0.3","superagent":"^1.2.0","underscore.string":"^3.2.2"},"devDependencies":{"artsy-xapp":"*","backbone":"*","backbone-super-sync":"*","body-parser":"*","brfs":"^1.4.3","browserify":"*","coffee-script":"^1.9.2","coffeeify":"^2.1.0","cookie-parser":"*","cookie-session":"*","jade":"*","mocha":"*","morgan":"*","rewire":"2.2.0","sharify":"*","should":"*","sinon":"*","underscore":"*","zombie":"*"},"gitHead":"05ad1dca1eb0ecfd1c2a4f914bd303529e88f0ed","_id":"artsy-passport@2.0.0","_npmVersion":"5.0.3","_nodeVersion":"8.1.0","_npmUser":{"name":"orta","email":"orta.therox@gmail.com"},"dist":{"integrity":"sha512-b9VRWVfNwTdNQ0XgZR+1JalVTK9TNFX5v+Crwi+q6YJdifEB5NkYNHgxF6SUpOpAkmvGGZQr4CrCTRTolc355A==","shasum":"1547e3b175b593b6a29bb0d1df241f883f37b55e","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-2.0.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD0fO6ncWAbZw5/whQloT/YEU1HCRtQHn4fmhhQHHDlJgIhAIwmTMGLx5N0OsKOnwDBGpH357tKMkIg2q6WsAVQx3ei"}]},"maintainers":[{"name":"broskoski","email":"cab@are.na"},{"name":"craigspaeth","email":"craigspaeth@gmail.com"},{"name":"orta","email":"orta.therox@gmail.com"},{"name":"zamiang","email":"brennanmoore@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/artsy-passport-2.0.0.tgz_1498663239769_0.15945570962503552"},"directories":{}},"2.0.1":{"name":"artsy-passport","version":"2.0.1","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"contributors":[{"name":"Brennan Moore","email":"brennanmoore@gmail.com","url":"http://brennanmoore.com"}],"engines":{"node":">= 0.10.x"},"main":"dist/index.js","scripts":{"test":"mocha test/app && mocha test/passport","compile":"coffee -c -o dist lib; cp lib/app/sanitize_redirect.js dist/app","compile-example":"browserify -t coffeeify example/client.coffee > example/public/client.js","example":"sleep 3 && open http://local.artsy.net:4000 & npm run compile && coffee example/index.coffee"},"dependencies":{"analytics-node":"^2.1.0","async":"^1.5.0","csurf":"^1.8.3","dotenv":"^4.0.0","express":"^4.12.3","mailcheck":"^1.1.1","passport":"^0.2.1","passport-facebook":"^2.0.0","passport-linkedin":"^1.0.0","passport-local":"^1.0.0","passport-twitter":"^1.0.3","superagent":"^1.2.0","underscore.string":"^3.2.2"},"devDependencies":{"artsy-xapp":"*","backbone":"*","backbone-super-sync":"*","body-parser":"*","brfs":"^1.4.3","browserify":"*","coffee-script":"^1.9.2","coffeeify":"^2.1.0","cookie-parser":"*","cookie-session":"*","jade":"*","mocha":"*","morgan":"*","rewire":"2.2.0","sharify":"*","should":"*","sinon":"*","underscore":"*","zombie":"*"},"gitHead":"47e91dcec3182b8e2afcef04b1a40d3469e8d9fa","_id":"artsy-passport@2.0.1","_npmVersion":"5.0.3","_nodeVersion":"8.1.0","_npmUser":{"name":"orta","email":"orta.therox@gmail.com"},"dist":{"integrity":"sha512-4RJ3wpS3K2FL80UfwOd9OH4H0VWCYymqWJFt1BDzjx6aYKkdR7ZkE3Ipu88IXHdq0Cpxg6xOXEOhfPVYNO4BIg==","shasum":"2a22d64cdb7b7fd4bd7cda01d6af16f4c979faf1","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-2.0.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIELbbbIrxrf04KM5aeoafjhNYj/UfKOBxSDKMqzDaWrXAiEAmL0Iy6lzs1o1WcMzMHFTnG6PZ6Y/d5lQmZbdW6TinQ4="}]},"maintainers":[{"name":"broskoski","email":"cab@are.na"},{"name":"craigspaeth","email":"craigspaeth@gmail.com"},{"name":"orta","email":"orta.therox@gmail.com"},{"name":"zamiang","email":"brennanmoore@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/artsy-passport-2.0.1.tgz_1498673207626_0.3461286916863173"},"directories":{}},"2.0.2":{"name":"artsy-passport","version":"2.0.2","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"contributors":[{"name":"Brennan Moore","email":"brennanmoore@gmail.com","url":"http://brennanmoore.com"}],"engines":{"node":">= 0.10.x"},"main":"dist/index.js","scripts":{"test":"mocha test/app && mocha test/passport","compile":"coffee -c -o dist lib; cp lib/app/sanitize_redirect.js dist/app","compile-example":"browserify -t coffeeify example/client.coffee > example/public/client.js","example":"sleep 3 && open http://local.artsy.net:4000 & npm run compile && coffee example/index.coffee"},"dependencies":{"analytics-node":"^2.1.0","async":"^1.5.0","csurf":"^1.8.3","dotenv":"^4.0.0","express":"^4.12.3","mailcheck":"^1.1.1","passport":"^0.2.1","passport-facebook":"^2.0.0","passport-linkedin":"^1.0.0","passport-local":"^1.0.0","passport-twitter":"^1.0.3","superagent":"^1.2.0","underscore.string":"^3.2.2"},"devDependencies":{"artsy-xapp":"*","backbone":"*","backbone-super-sync":"*","body-parser":"*","brfs":"^1.4.3","browserify":"*","coffee-script":"^1.9.2","coffeeify":"^2.1.0","cookie-parser":"*","cookie-session":"*","jade":"*","mocha":"*","morgan":"*","rewire":"2.2.0","sharify":"*","should":"*","sinon":"*","underscore":"*","zombie":"*"},"gitHead":"47e91dcec3182b8e2afcef04b1a40d3469e8d9fa","_id":"artsy-passport@2.0.2","_npmVersion":"5.0.3","_nodeVersion":"8.1.0","_npmUser":{"name":"orta","email":"orta.therox@gmail.com"},"dist":{"integrity":"sha512-0cPWSqQxkF4jX8c+hkHo/kctcL9vi1M6Yi65cECMbwvKoywtqVqAqi3aTl+OvwYeYrge2e5qu2z/QtVjOQ4KJg==","shasum":"f7e2779b04e644c5ec9125cefb4e94db0e94829a","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-2.0.2.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC6aAc5OGCX9lKMc8a0P3237EWM5CefI+3UX6AFJoVEhgIhAIdnjYDHOZ9S+c5LpHXFJn19dP0IzhwjezsRb5D0PvpL"}]},"maintainers":[{"name":"broskoski","email":"cab@are.na"},{"name":"craigspaeth","email":"craigspaeth@gmail.com"},{"name":"orta","email":"orta.therox@gmail.com"},{"name":"zamiang","email":"brennanmoore@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/artsy-passport-2.0.2.tgz_1498673941258_0.8961365523282439"},"directories":{}},"2.0.3":{"name":"artsy-passport","version":"2.0.3","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"contributors":[{"name":"Brennan Moore","email":"brennanmoore@gmail.com","url":"http://brennanmoore.com"}],"engines":{"node":">= 0.10.x"},"main":"dist/index.js","scripts":{"test":"mocha test/app && mocha test/passport","compile":"coffee -c -o dist lib; cp lib/app/sanitize_redirect.js dist/app","compile-example":"browserify -t coffeeify example/client.coffee > example/public/client.js","example":"sleep 3 && open http://local.artsy.net:4000 & npm run compile && coffee example/index.coffee"},"dependencies":{"analytics-node":"^2.1.0","async":"^1.5.0","csurf":"^1.8.3","dotenv":"^4.0.0","express":"^4.12.3","mailcheck":"^1.1.1","passport":"^0.2.1","passport-facebook":"^2.0.0","passport-linkedin":"^1.0.0","passport-local":"^1.0.0","passport-twitter":"^1.0.3","superagent":"^1.2.0","underscore.string":"^3.2.2"},"devDependencies":{"artsy-xapp":"*","backbone":"*","backbone-super-sync":"*","body-parser":"*","brfs":"^1.4.3","browserify":"*","coffee-script":"^1.9.2","coffeeify":"^2.1.0","cookie-parser":"*","cookie-session":"*","jade":"*","mocha":"*","morgan":"*","rewire":"2.2.0","sharify":"*","should":"*","sinon":"*","underscore":"*","zombie":"*"},"gitHead":"47e91dcec3182b8e2afcef04b1a40d3469e8d9fa","_id":"artsy-passport@2.0.3","_npmVersion":"5.0.3","_nodeVersion":"8.1.0","_npmUser":{"name":"orta","email":"orta.therox@gmail.com"},"dist":{"integrity":"sha512-vRZEQSfSVSccLWwODa4L4EmtUqRO0D5BCSTpBZ9fqyqFU8o5CfwWfh/i0XjNwbKYuTmKs33Fv5HwAIz9B8sVWQ==","shasum":"0a44b02e0adfecf8b04826ff8edee2506cef048b","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-2.0.3.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfmZmznJOVzLQgCEnrzpcF6f7AvHdXZ8jQ6IJz1GOUpwIhALIui3PvZF1YwDobKEowZD3K9LzKX+2Fne/W5VV7bCBV"}]},"maintainers":[{"name":"broskoski","email":"cab@are.na"},{"name":"craigspaeth","email":"craigspaeth@gmail.com"},{"name":"orta","email":"orta.therox@gmail.com"},{"name":"zamiang","email":"brennanmoore@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/artsy-passport-2.0.3.tgz_1498674176000_0.7523198304697871"},"directories":{}},"2.0.4":{"name":"artsy-passport","version":"2.0.4","description":"Wires up the common auth handlers for Artsy's [Ezel](ezeljs.com)-based apps using [passport](http://passportjs.org/).","keywords":["artsy","passport","auth","authentication"],"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"contributors":[{"name":"Brennan Moore","email":"brennanmoore@gmail.com","url":"http://brennanmoore.com"}],"engines":{"node":">= 0.10.x"},"main":"dist/index.js","scripts":{"test":"mocha test/app && mocha test/passport","compile":"coffee -c -o dist lib; cp lib/app/sanitize_redirect.js dist/app","compile-example":"browserify -t coffeeify example/client.coffee > example/public/client.js","example":"sleep 3 && open http://local.artsy.net:4000 & npm run compile && coffee example/index.coffee"},"dependencies":{"analytics-node":"^2.1.0","async":"^1.5.0","csurf":"^1.8.3","dotenv":"^4.0.0","express":"^4.12.3","mailcheck":"^1.1.1","passport":"^0.2.1","passport-facebook":"^2.0.0","passport-linkedin":"^1.0.0","passport-local":"^1.0.0","passport-twitter":"^1.0.3","superagent":"^1.2.0","underscore.string":"^3.2.2"},"devDependencies":{"artsy-xapp":"*","backbone":"*","backbone-super-sync":"*","body-parser":"*","brfs":"^1.4.3","browserify":"*","coffee-script":"^1.9.2","coffeeify":"^2.1.0","cookie-parser":"*","cookie-session":"*","jade":"*","mocha":"*","morgan":"*","rewire":"2.2.0","sharify":"*","should":"*","sinon":"*","underscore":"*","zombie":"*"},"gitHead":"eee48e2a3ce624db7b5d8ee794165cba17e10482","_id":"artsy-passport@2.0.4","_npmVersion":"5.5.1","_nodeVersion":"8.9.1","_npmUser":{"name":"orta","email":"orta.therox@gmail.com"},"dist":{"integrity":"sha512-jKHTzltB1dQwyZfUBtY4+qYuSc5QfXj8PImgc3+pgnyGENGZfS+qbktEu1EACEwe6EfEtGqeeQPWO5awYqmLYw==","shasum":"6919234a49733b417c23004f44c5dc3f7d63f1c5","tarball":"https://registry.npmjs.org/artsy-passport/-/artsy-passport-2.0.4.tgz","fileCount":20,"unpackedSize":40457,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH6JiRiLzB2YUppUg4cYUbU2ZPG3XBNEvfqDuQncc4eCAiEAk754vrEzcX602uiLVNej40lWEx9gVKSUf90zTAa94IU="}]},"maintainers":[{"name":"broskoski","email":"cab@are.na"},{"name":"craigspaeth","email":"craigspaeth@gmail.com"},{"name":"orta","email":"orta.therox@gmail.com"},{"name":"zamiang","email":"brennanmoore@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/artsy-passport_2.0.4_1518805425388_0.22892613616590918"},"_hasShrinkwrap":false}},"readme":"# Artsy Passport\n\n[![CircleCI](https://circleci.com/gh/artsy/artsy-passport.svg?style=svg)](https://circleci.com/gh/artsy/artsy-passport)\n\nWires up the common auth handlers, and related security concerns, for Artsy's [Ezel](http://ezeljs.com)-based apps using [passport](http://passportjs.org/). Used internally at Artsy to DRY up authentication code.\n\n## Breaking changes in 2.0\n\n* The app is now shipped as a single JS file.\n\n## Setup\n\n#### Make sure you first mount session, body parser, and start [artsy-xapp](https://github.com/artsy/artsy-xapp).\n\n```coffee\napp.use express.bodyParser()\napp.use express.cookieParser('foobar')\napp.use express.cookieSession()\nartsyXapp.init -> app.listen()\n```\n\n#### Then mount Artsy Passport passing a big configuration hash.\n\n_Values indicate defaults._\n\n```coffee\napp.use artsyPassport\n\n  CurrentUser: # The CurrentUser Backbone model\n\n  # Pass in env vars\n  # ----------------\n  FACEBOOK_ID: # Facebook app ID\n  FACEBOOK_SECRET: # Facebook app secret\n  TWITTER_KEY: # Twitter consumer key\n  TWITTER_SECRET: # Twitter consumer secret\n  TWITTER_KEY: # Twitter consumer key\n  TWITTER_SECRET: # Twitter consumer secret\n  LINKEDIN_KEY: # Linkedin app key\n  LINKEDIN_SECRET: # Linkedin app secret\n  ARTSY_ID: # Artsy client id\n  ARTSY_SECRET: # Artsy client secret\n  ARTSY_URL: # SSL Artsy url e.g. https://artsy.net\n  APP_URL: # Url pointing back to your app e.g. http://flare.artsy.net\n  SEGMENT_WRITE_KEY: # Segment write key to track signup\n\n  # Defaults you probably don't need to touch\n  # -----------------------------------------\n\n  # Social auth\n  linkedinPath: '/users/auth/linkedin'\n  linkedinCallbackPath: '/users/auth/linkedin/callback'\n  facebookPath: '/users/auth/facebook'\n  facebookCallbackPath: '/users/auth/facebook/callback'\n  twitterPath: '/users/auth/twitter'\n  twitterCallbackPath: '/users/auth/twitter/callback'\n  twitterLastStepPath: '/users/auth/twitter/email'\n  twitterSignupTempEmail: (token) ->\n    hash = crypto.createHash('sha1').update(token).digest('hex')\n    \"#{hash.substr 0, 12}@artsy.tmp\"\n\n  # Landing pages\n  loginPagePath: '/log_in'\n  signupPagePath: '/sign_up'\n  settingsPagePath: '/user/edit'\n  afterSignupPagePath: '/personalize'\n\n  # Misc\n  logoutPath: '/users/sign_out'\n  userKeys: [\n    'id', 'type', 'name', 'email', 'phone', 'lab_features',\n    'default_profile_id', 'has_partner_access', 'collector_level'\n  ]\n```\n\nThe keys are cased so it's convenient to pass in a configuration hash. A minimal setup could look like this:\n\n```coffee\napp.use artsyPassport _.extend config,\n  CurrentUser: CurrentUser\n```\n\n**Note:** CurrentUser must be a Backbone model with typical `get` and `toJSON` methods.\n\n#### Create a login form pointing to your paths.\n\n```jade\nh1 Login\npre!= error\na( href=ap.facebookPath ) Login via Facebook\na( href=ap.twitterPath ) Login via Twitter\nform( action=ap.loginPagePath, method='POST' )\n  h3 Login via Email\n  input( name='name' )\n  input( name='email' )\n  input( name='password' )\n  input( type=\"hidden\" name=\"_csrf\" value=csrfToken )\n  button( type='submit' ) Login\n```\n\n#### And maybe a signup form...\n\n```jade\nh1 Signup\npre!= error\na( href=ap.facebookPath ) Signup via Facebook\na( href=ap.twitterPath ) Signup via Twitter\nform( action=ap.signupPagePath, method='POST' )\n  h3 Signup via Email\n  input( name='name' )\n  input( name='email' )\n  input( name='password' )\n  input( type=\"hidden\" name=\"_csrf\" value=csrfToken )\n  button( type='submit' ) Signup\n```\n\n#### And maybe a settings page for linking accounts...\n\n```jade\nh2 Linked Accounts\npre!= error\n- providers = user.get('authentications').map(function(a) { return a.provider })\nif providers.indexOf('facebook') > -1\n  | Connected Facebook\nelse\n  a( href=ap.facebookPath ) Connect Facebook\nbr\nif providers.indexOf('twitter') > -1\n  | Connected Twitter\nelse\n  a( href=ap.twitterPath ) Connect Twitter\nbr\nif providers.indexOf('linkedin') > -1\n  | Connected LinkedIn\nelse\n  a( href=ap.linkedinPath ) Connect LinkedIn\n```\n\n#### Finally there's this weird \"one last step\" UI for twitter to store emails after signup.\n\n```jade\nh1 Just one more step\npre!= error\nform( method='post', action=ap.twitterLastStepPath )\n  input( type=\"hidden\" name=\"_csrf\" value=csrfToken )\n  input.bordered-input( name='email' )\n  button( type='submit' ) Join Artsy\n```\n\n#### Render the pages\n\n```coffee\n{ loginPagePath, signupPagePath, settingsPagePath,\n  afterSignupPagePath, twitterLastStepPath } = artsyPassport.options\n\napp.get loginPagePath, (req, res) -> res.render 'login'\napp.get signupPagePath, (req, res) -> res.render 'signup'\napp.get settingsPagePath, (req, res) -> res.render 'settings'\napp.get afterSignupPagePath, (req, res) -> res.render 'personalize'\napp.get twitterLastStepPath, (req, res) -> res.render 'twitter_last_step'\n```\n\n#### Access a logged in Artsy user in a variety of ways...\n\nIn your server-side templates\n\n```jade\nh1 Hello #{user.get('name')}\n```\n\nIn your client-side code\n\n```coffee\nCurrentUser = require '../models/current_user.coffee'\nsd = require('sharify').data\n\nuser = new CurrentUser(sd.CURRENT_USER)\n```\n\nIn your routers\n\n```coffee\napp.get '/', (req, res) ->\n  res.send 'Hello ' + req.user.get('name')\n```\n\n_These forms of user will be null if they're not logged in._\n\n## Sanitize Redirect\n\nIf you implement a fancier auth flow that involves client-side redirecting back, you may find this helper useful in avoiding [\"open redirect\"](https://github.com/artsy/artsy-passport/issues/68) attacks.\n\n```coffee\nsanitizeRedirect = require 'artsy-passport/sanitize-redirect'\n\nlocation.href = sanitizeRedirect \"http://artsy.net%0D%0Aattacker.com/\"\n# Notices the url isn't pointing at artsy.net, so just redirects to /\n```\n\n## Contributing\n\nAdd a `local.artsy.net` entry into your /etc/hosts\n\n```\n127.0.0.1 localhost\n#...\n127.0.0.1 local.artsy.net\n```\n\nInstall node modules `npm install` then write a ./config.coffee that looks something like this:\n\n```coffee\nmodule.exports =\n  FACEBOOK_ID: ''\n  FACEBOOK_SECRET: ''\n  TWITTER_KEY: ''\n  TWITTER_SECRET: ''\n  LINKEDIN_KEY: ''\n  LINKEDIN_SECRET: ''\n  ARTSY_ID: ''\n  ARTSY_SECRET: ''\n  ARTSY_URL: 'https://api.artsy.net'\n  APP_URL: 'http://local.artsy.net:4000'\n  # An Artsy user that's linked to Facebook and Twitter\n  ARTSY_EMAIL: 'craig@artsy.net'\n  ARTSY_PASSWORD: ''\n  TWITTER_EMAIL: 'craigspaeth@gmail.com'\n  TWITTER_PASSWORD: ''\n  FACEBOOK_EMAIL: 'craigspaeth@gmail.com'\n  FACEBOOK_PASSWORD: ''\n```\n\nThen you can check the example by running `npm run example` and opening [localhost:4000](http://localhost:4000).\n\nThe tests are a combination of integration and middleware unit tests. To run the whole suite use `npm test`.\n","maintainers":[{"name":"broskoski","email":"cab@are.na"},{"name":"craigspaeth","email":"craigspaeth@gmail.com"},{"name":"orta","email":"orta.therox@gmail.com"},{"name":"zamiang","email":"brennanmoore@gmail.com"}],"time":{"modified":"2022-06-13T03:30:39.036Z","created":"2013-11-23T00:07:17.277Z","0.0.1":"2013-11-23T00:07:18.351Z","0.0.2":"2013-12-09T21:08:09.745Z","0.0.3":"2013-12-09T22:01:56.041Z","0.1.0":"2013-12-17T18:09:36.149Z","0.1.1":"2014-01-06T18:01:22.053Z","0.1.2":"2014-01-06T23:34:45.617Z","0.1.3":"2014-01-09T16:57:09.498Z","0.1.5":"2014-09-16T22:13:41.154Z","0.1.6":"2014-09-17T19:24:21.387Z","0.1.7":"2014-09-17T21:24:15.857Z","0.1.8":"2014-09-23T16:25:38.998Z","1.0.5":"2015-12-22T17:07:38.725Z","1.0.6":"2016-04-26T22:14:55.374Z","1.0.7":"2016-04-27T19:05:06.293Z","1.0.8":"2016-04-27T19:33:46.206Z","1.1.0":"2016-05-16T19:37:30.275Z","1.1.1":"2016-06-01T17:39:40.901Z","1.1.2":"2016-07-15T17:45:46.231Z","1.2.0":"2016-11-21T22:47:59.191Z","1.2.1":"2016-11-21T23:24:12.278Z","1.3.0":"2016-11-29T23:18:25.769Z","1.4.0":"2017-01-11T19:46:34.560Z","1.5.0":"2017-01-25T22:38:51.755Z","1.5.1":"2017-01-26T20:55:46.326Z","1.5.2":"2017-01-26T21:58:28.929Z","1.6.0":"2017-01-27T00:40:31.160Z","1.6.1":"2017-02-15T21:54:01.930Z","1.7.0":"2017-04-21T14:49:16.762Z","1.7.2":"2017-04-21T16:15:03.611Z","1.7.4":"2017-05-10T21:33:01.358Z","2.0.0":"2017-06-28T15:20:41.664Z","2.0.1":"2017-06-28T18:06:48.761Z","2.0.2":"2017-06-28T18:19:02.349Z","2.0.3":"2017-06-28T18:22:57.013Z","2.0.4":"2018-02-16T18:23:45.571Z"},"author":{"name":"Craig Spaeth","email":"craigspaeth@gmail.com","url":"http://craigspaeth.com"},"keywords":["artsy","passport","auth","authentication"],"readmeFilename":"README.md","contributors":[{"name":"Brennan Moore","email":"brennanmoore@gmail.com","url":"http://brennanmoore.com"}]}