proof of concept for #5740

This commit is contained in:
psychobunny
2017-06-20 16:12:55 -04:00
parent a509ccab84
commit 228e9ab8e3
4 changed files with 100 additions and 31 deletions

View File

@@ -6,6 +6,7 @@ var db = require('../database');
var meta = require('../meta');
var events = require('../events');
var batch = require('../batch');
var utils = require('../utils');
module.exports = function (User) {
User.auth = {};
@@ -47,6 +48,25 @@ module.exports = function (User) {
], callback);
};
User.auth.getFeedToken = function (uid, callback) {
if (!uid) {
return callback();
}
User.getUserField(uid, 'rss_token', function (err, token) {
if (err) {
return callback(err);
}
if (!token) {
token = utils.generateUUID();
User.setUserField(uid, 'rss_token', token);
}
callback(false, token);
});
};
User.auth.clearLoginAttempts = function (uid) {
db.delete('loginAttempts:' + uid);
};

View File

@@ -283,7 +283,10 @@ module.exports = function (User) {
},
function (hashedPassword, next) {
async.parallel([
async.apply(User.setUserField, data.uid, 'password', hashedPassword),
async.apply(User.setUserFields, data.uid, {
password: hashedPassword,
rss_token: utils.generateUUID(),
}),
async.apply(User.reset.updateExpiry, data.uid),
async.apply(User.auth.revokeAllSessions, data.uid),
], function (err) {