polar-auth
Advanced tools
Comparing version 0.1.0 to 0.1.1
@@ -1,2 +0,2 @@ | ||
// Generated by CoffeeScript 1.8.0 | ||
// Generated by CoffeeScript 2.3.2 | ||
(function() { | ||
@@ -24,8 +24,4 @@ var bcrypt, comparePassword, crypto, hashPassword, randomString; | ||
module.exports = { | ||
hashPassword: hashPassword, | ||
comparePassword: comparePassword, | ||
randomString: randomString | ||
}; | ||
module.exports = {hashPassword, comparePassword, randomString}; | ||
}).call(this); |
@@ -1,5 +0,4 @@ | ||
// Generated by CoffeeScript 1.8.0 | ||
// Generated by CoffeeScript 2.3.2 | ||
(function() { | ||
var asMiddleware, express, fillConfig, helpers, joinConfigs, middleware, routes, | ||
__slice = [].slice; | ||
var asMiddleware, express, fillConfig, helpers, joinConfigs, middleware, routes; | ||
@@ -15,6 +14,6 @@ express = require('express'); | ||
joinConfigs = function(configs) { | ||
var config, k, v, _config, _i, _len; | ||
var _config, config, i, k, len, v; | ||
config = {}; | ||
for (_i = 0, _len = configs.length; _i < _len; _i++) { | ||
_config = configs[_i]; | ||
for (i = 0, len = configs.length; i < len; i++) { | ||
_config = configs[i]; | ||
for (k in _config) { | ||
@@ -41,2 +40,4 @@ v = _config[k]; | ||
app = express(); | ||
app.set('views', config.view_dir || config.static_dir || '.'); | ||
app.set('view engine', config.view_engine || 'pug'); | ||
app.use(middleware.token_middleware(config)); | ||
@@ -59,5 +60,4 @@ app.get('/login', routes.showLogin); | ||
module.exports = function() { | ||
var config, configs; | ||
configs = 1 <= arguments.length ? __slice.call(arguments, 0) : []; | ||
module.exports = function(...configs) { | ||
var config; | ||
config = fillConfig(joinConfigs(configs)); | ||
@@ -64,0 +64,0 @@ return { |
@@ -1,5 +0,5 @@ | ||
// Generated by CoffeeScript 1.8.0 | ||
// Generated by CoffeeScript 2.3.2 | ||
(function() { | ||
var default_token_strategy, isStaticUrl, jwt, static_exts, token_middleware, | ||
__indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; | ||
indexOf = [].indexOf; | ||
@@ -11,5 +11,5 @@ jwt = require('jwt-simple'); | ||
isStaticUrl = function(url) { | ||
var match, _ref; | ||
var match, ref; | ||
if (match = url.match(/\.(\w+)$/)) { | ||
if (_ref = match[1], __indexOf.call(static_exts, _ref) >= 0) { | ||
if (ref = match[1], indexOf.call(static_exts, ref) >= 0) { | ||
return true; | ||
@@ -21,2 +21,3 @@ } | ||
// The default token strategy encodes the user.id directly in the JWT token | ||
default_token_strategy = { | ||
@@ -40,10 +41,11 @@ encode: function(config, user, cb) { | ||
return function(req, res, next) { | ||
var err, token, _ref; | ||
var err, ref, token; | ||
if (isStaticUrl(req.url)) { | ||
return next(); | ||
} else if (token = req.headers.token || ((_ref = req.session) != null ? _ref.token : void 0)) { | ||
// If the token exists, pass to the decode strategy to get a user | ||
} else if (token = req.headers.token || ((ref = req.session) != null ? ref.token : void 0)) { | ||
try { | ||
return config.token_strategy.decode(config, token, function(err, user) { | ||
if (err != null) { | ||
console.error("Cannot use token " + token + ":", err); | ||
console.error(`Cannot use token ${token}:`, err); | ||
} else { | ||
@@ -55,5 +57,5 @@ res.locals.token = token; | ||
}); | ||
} catch (_error) { | ||
err = _error; | ||
console.error("Invalid token " + token + ":", err); | ||
} catch (error) { | ||
err = error; // JWT decode error | ||
console.error(`Invalid token ${token}:`, err); | ||
return next(); | ||
@@ -67,7 +69,4 @@ } | ||
module.exports = { | ||
default_token_strategy: default_token_strategy, | ||
token_middleware: token_middleware | ||
}; | ||
module.exports = {default_token_strategy, token_middleware}; | ||
}).call(this); |
@@ -1,2 +0,2 @@ | ||
// Generated by CoffeeScript 1.8.0 | ||
// Generated by CoffeeScript 2.3.2 | ||
(function() { | ||
@@ -7,2 +7,3 @@ var doForgot, doLogin, doLogout, doReset, doSignup, helpers, requireLogin, requireUser, sendJson, sendResponse, showLogin, trimUser, userExists; | ||
// Helpers | ||
userExists = function(user) { | ||
@@ -12,6 +13,3 @@ return user != null; | ||
requireUser = function(user_fn) { | ||
if (user_fn == null) { | ||
user_fn = userExists; | ||
} | ||
requireUser = function(user_fn = userExists) { | ||
return function(req, res, next) { | ||
@@ -54,2 +52,3 @@ var user; | ||
// Show * | ||
showLogin = function(req, res) { | ||
@@ -59,2 +58,3 @@ return res.render('login'); | ||
// Do * | ||
doLogout = function(config) { | ||
@@ -114,3 +114,3 @@ return function(req, res) { | ||
login_errors = {}; | ||
generic_error = "Incorrect " + config.login_key + " or password"; | ||
generic_error = `Incorrect ${config.login_key} or password`; | ||
login_errors[config.login_key] = generic_error; | ||
@@ -125,3 +125,3 @@ return sendResponse(config)(req, res)({ | ||
login_errors = {}; | ||
generic_error = "Incorrect " + config.login_key + " or password"; | ||
generic_error = `Incorrect ${config.login_key} or password`; | ||
login_errors[config.login_key] = err || generic_error; | ||
@@ -139,3 +139,3 @@ return sendResponse(config)(req, res)({ | ||
return function(req, res) { | ||
var data, k, keep_keys, new_user, _i, _len; | ||
var data, i, k, keep_keys, len, new_user; | ||
data = req.body; | ||
@@ -145,4 +145,4 @@ new_user = {}; | ||
if (keep_keys = config.keep_keys) { | ||
for (_i = 0, _len = keep_keys.length; _i < _len; _i++) { | ||
k = keep_keys[_i]; | ||
for (i = 0, len = keep_keys.length; i < len; i++) { | ||
k = keep_keys[i]; | ||
new_user[k] = data[k]; | ||
@@ -169,5 +169,6 @@ } | ||
if (created_user != null) { | ||
console.log("[POST /signup] User signed up: " + created_user[config.login_key], { | ||
console.log(`[POST /signup] User signed up: ${created_user[config.login_key]}`, { | ||
user: created_user | ||
}); | ||
// TODO: config.didSignup created_user, req, res | ||
return config.token_strategy.encode(config, created_user, function(err, token) { | ||
@@ -191,3 +192,3 @@ req.session.token = token; | ||
signup_errors = err; | ||
console.log("[POST /signup] Failed signup: duplicate " + key + " " + new_user[key], { | ||
console.log(`[POST /signup] Failed signup: duplicate ${key} ${new_user[key]}`, { | ||
user: new_user | ||
@@ -201,3 +202,3 @@ }); | ||
signup_errors = {}; | ||
console.log("[POST /signup] Failed signup: " + new_user[config.login_key], { | ||
console.log(`[POST /signup] Failed signup: ${new_user[config.login_key]}`, { | ||
user: new_user | ||
@@ -221,2 +222,3 @@ }); | ||
data = req.body; | ||
// Create the reset token | ||
reset_token = helpers.randomString(); | ||
@@ -237,7 +239,6 @@ reset_link = config.base_url + '/reset/' + reset_token; | ||
} else { | ||
// Save the token | ||
user_query = {}; | ||
user_query[config.id_key] = user[config.id_key]; | ||
user_update = { | ||
reset_token: reset_token | ||
}; | ||
user_update = {reset_token}; | ||
return config.updateUser(user_query, user_update, function(err, updated) { | ||
@@ -250,7 +251,5 @@ if (err) { | ||
} | ||
// Send the email | ||
if (config.sendEmail != null) { | ||
config.sendEmail('reset_password', { | ||
user: user, | ||
reset_link: reset_link | ||
}, function(err, success) { | ||
config.sendEmail('reset_password', {user, reset_link}, function(err, success) { | ||
if (err) { | ||
@@ -263,2 +262,3 @@ return console.log('[ERROR: sendEmail]', err); | ||
} | ||
// TODO: Determine if it was actually successful | ||
return sendResponse(config)(req, res)({ | ||
@@ -294,2 +294,3 @@ success: true | ||
delete data.confirm_password; | ||
// Display errors | ||
if (Object.keys(reset_errors).length) { | ||
@@ -301,4 +302,5 @@ return sendResponse(config)(req, res)({ | ||
} else { | ||
// Success case | ||
user_update = { | ||
password: password, | ||
password, | ||
reset_token: null | ||
@@ -330,13 +332,12 @@ }; | ||
module.exports = { | ||
requireLogin: requireLogin, | ||
requireUser: requireUser, | ||
doLogout: doLogout, | ||
showLogin: showLogin, | ||
doLogin: doLogin, | ||
doSignup: doSignup, | ||
doForgot: doForgot, | ||
doReset: doReset | ||
}; | ||
module.exports = {requireLogin, requireUser, doLogout, showLogin, doLogin, doSignup, doForgot, doReset}; | ||
// TODO: | ||
// config.createUser | ||
// config.updateUser | ||
// config.didLogin | ||
// config.didSignup | ||
// config.didForgot | ||
// config.didReset | ||
}).call(this); |
{ | ||
"name": "polar-auth", | ||
"version": "0.1.0", | ||
"version": "0.1.1", | ||
"description": "standard auth helpers and middlware for polar", | ||
@@ -5,0 +5,0 @@ "scripts": { |
Sorry, the diff of this file is not supported yet
30390
454