mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-01 03:26:04 +01:00
closes #4261
This commit is contained in:
@@ -87,8 +87,7 @@ function registerAndLoginUser(req, res, userData, callback) {
|
|||||||
function(_uid, next) {
|
function(_uid, next) {
|
||||||
uid = _uid;
|
uid = _uid;
|
||||||
if (res.locals.processLogin === true) {
|
if (res.locals.processLogin === true) {
|
||||||
user.logIP(uid, req.ip);
|
doLogin(req, uid, next);
|
||||||
req.login({uid: uid}, next);
|
|
||||||
} else {
|
} else {
|
||||||
next();
|
next();
|
||||||
}
|
}
|
||||||
@@ -172,37 +171,11 @@ function continueLogin(req, res, next) {
|
|||||||
res.status(200).send(nconf.get('relative_path') + '/reset/' + code);
|
res.status(200).send(nconf.get('relative_path') + '/reset/' + code);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
req.login({
|
doLogin(req, userData.uid, function(err) {
|
||||||
uid: userData.uid
|
|
||||||
}, function(err) {
|
|
||||||
if (err) {
|
if (err) {
|
||||||
return res.status(403).send(err.message);
|
return res.status(403).send(err.message);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (userData.uid) {
|
|
||||||
var uuid = utils.generateUUID();
|
|
||||||
req.session.meta = {};
|
|
||||||
|
|
||||||
// Associate IP used during login with user account
|
|
||||||
user.logIP(userData.uid, req.ip);
|
|
||||||
req.session.meta.ip = req.ip;
|
|
||||||
|
|
||||||
// Associate metadata retrieved via user-agent
|
|
||||||
req.session.meta = _.extend(req.session.meta, {
|
|
||||||
uuid: uuid,
|
|
||||||
datetime: Date.now(),
|
|
||||||
platform: req.useragent.platform,
|
|
||||||
browser: req.useragent.browser,
|
|
||||||
version: req.useragent.version
|
|
||||||
});
|
|
||||||
|
|
||||||
// Associate login session with user
|
|
||||||
user.auth.addSession(userData.uid, req.sessionID);
|
|
||||||
db.setObjectField('uid:' + userData.uid + 'sessionUUID:sessionId', uuid, req.sessionID);
|
|
||||||
|
|
||||||
plugins.fireHook('action:user.loggedIn', userData.uid);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!req.session.returnTo) {
|
if (!req.session.returnTo) {
|
||||||
res.status(200).send(nconf.get('relative_path') + '/');
|
res.status(200).send(nconf.get('relative_path') + '/');
|
||||||
} else {
|
} else {
|
||||||
@@ -216,6 +189,40 @@ function continueLogin(req, res, next) {
|
|||||||
})(req, res, next);
|
})(req, res, next);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function doLogin(req, uid, callback) {
|
||||||
|
req.login({uid: uid}, function(err) {
|
||||||
|
if (err) {
|
||||||
|
return callback(err);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (uid) {
|
||||||
|
var uuid = utils.generateUUID();
|
||||||
|
req.session.meta = {};
|
||||||
|
|
||||||
|
// Associate IP used during login with user account
|
||||||
|
user.logIP(uid, req.ip);
|
||||||
|
req.session.meta.ip = req.ip;
|
||||||
|
|
||||||
|
// Associate metadata retrieved via user-agent
|
||||||
|
req.session.meta = _.extend(req.session.meta, {
|
||||||
|
uuid: uuid,
|
||||||
|
datetime: Date.now(),
|
||||||
|
platform: req.useragent.platform,
|
||||||
|
browser: req.useragent.browser,
|
||||||
|
version: req.useragent.version
|
||||||
|
});
|
||||||
|
|
||||||
|
// Associate login session with user
|
||||||
|
user.auth.addSession(uid, req.sessionID);
|
||||||
|
db.setObjectField('uid:' + uid + 'sessionUUID:sessionId', uuid, req.sessionID);
|
||||||
|
|
||||||
|
plugins.fireHook('action:user.loggedIn', uid);
|
||||||
|
}
|
||||||
|
|
||||||
|
callback();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
authenticationController.localLogin = function(req, username, password, next) {
|
authenticationController.localLogin = function(req, username, password, next) {
|
||||||
if (!username) {
|
if (!username) {
|
||||||
return next(new Error('[[error:invalid-username]]'));
|
return next(new Error('[[error:invalid-username]]'));
|
||||||
|
|||||||
Reference in New Issue
Block a user