mirror of
				https://github.com/Ylianst/MeshCentral.git
				synced 2025-03-09 15:40:18 +00:00 
			
		
		
		
	Updated MeshCentral Router to support messaging 2FA (#4650)
This commit is contained in:
		
							parent
							
								
									d99755f223
								
							
						
					
					
						commit
						392c34bbd0
					
				
					 4 changed files with 7 additions and 7 deletions
				
			
		
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 3.2 KiB | 
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 9.3 KiB | 
							
								
								
									
										14
									
								
								webserver.js
									
										
									
									
									
								
							
							
						
						
									
										14
									
								
								webserver.js
									
										
									
									
									
								
							|  | @ -7337,20 +7337,20 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF | |||
|                                             } else { | ||||
|                                                 // Ask for a login token
 | ||||
|                                                 parent.debug('web', 'Asking for login token'); | ||||
|                                                 try { ws.send(JSON.stringify({ action: 'close', cause: 'noauth', msg: 'tokenrequired', email2fa: email2fa, sms2fa: sms2fa, twoFactorCookieDays: twoFactorCookieDays })); ws.close(); } catch (ex) { console.log(ex); } | ||||
|                                                 try { ws.send(JSON.stringify({ action: 'close', cause: 'noauth', msg: 'tokenrequired', email2fa: email2fa, sms2fa: sms2fa, msg2fa: msg2fa, twoFactorCookieDays: twoFactorCookieDays })); ws.close(); } catch (ex) { console.log(ex); } | ||||
|                                             } | ||||
|                                         } else { | ||||
|                                             checkUserOneTimePassword(req, domain, user, command.token, null, function (result, authData) { | ||||
|                                                 if (result == false) { | ||||
|                                                     // Failed, ask for a login token again
 | ||||
|                                                     parent.debug('web', 'Invalid login token, asking again'); | ||||
|                                                     try { ws.send(JSON.stringify({ action: 'close', cause: 'noauth', msg: 'tokenrequired', email2fa: email2fa, sms2fa: sms2fa, twoFactorCookieDays: twoFactorCookieDays })); ws.close(); } catch (e) { } | ||||
|                                                     try { ws.send(JSON.stringify({ action: 'close', cause: 'noauth', msg: 'tokenrequired', email2fa: email2fa, sms2fa: sms2fa, msg2fa: msg2fa, twoFactorCookieDays: twoFactorCookieDays })); ws.close(); } catch (e) { } | ||||
|                                                 } else { | ||||
|                                                     // We are authenticated with 2nd factor.
 | ||||
|                                                     // Check email verification
 | ||||
|                                                     if (emailcheck && (user.email != null) && (!(user._id.split('/')[2].startsWith('~'))) && (user.emailVerified !== true)) { | ||||
|                                                         parent.debug('web', 'Invalid login, asking for email validation'); | ||||
|                                                         try { ws.send(JSON.stringify({ action: 'close', cause: 'emailvalidation', msg: 'emailvalidationrequired', email2fa: email2fa, sms2fa: sms2fa, email2fasent: true })); ws.close(); } catch (e) { } | ||||
|                                                         try { ws.send(JSON.stringify({ action: 'close', cause: 'emailvalidation', msg: 'emailvalidationrequired', email2fa: email2fa, sms2fa: sms2fa, msg2fa: msg2fa, email2fasent: true })); ws.close(); } catch (e) { } | ||||
|                                                     } else { | ||||
|                                                         // We are authenticated
 | ||||
|                                                         ws._socket.pause(); | ||||
|  | @ -7493,20 +7493,20 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF | |||
|                                 } else { | ||||
|                                     // Ask for a login token
 | ||||
|                                     parent.debug('web', 'Asking for login token'); | ||||
|                                     try { ws.send(JSON.stringify({ action: 'close', cause: 'noauth', msg: 'tokenrequired', email2fa: email2fa, sms2fa: sms2fa, twoFactorCookieDays: twoFactorCookieDays })); ws.close(); } catch (e) { } | ||||
|                                     try { ws.send(JSON.stringify({ action: 'close', cause: 'noauth', msg: 'tokenrequired', email2fa: email2fa, sms2fa: sms2fa, msg2fa: msg2fa, twoFactorCookieDays: twoFactorCookieDays })); ws.close(); } catch (e) { } | ||||
|                                 } | ||||
|                             } else { | ||||
|                                 checkUserOneTimePassword(req, domain, user, req.query.token, null, function (result, authData) { | ||||
|                                     if (result == false) { | ||||
|                                         // Failed, ask for a login token again
 | ||||
|                                         parent.debug('web', 'Invalid login token, asking again'); | ||||
|                                         try { ws.send(JSON.stringify({ action: 'close', cause: 'noauth', msg: 'tokenrequired', email2fa: email2fa, sms2fa: sms2fa, twoFactorCookieDays: twoFactorCookieDays })); ws.close(); } catch (e) { } | ||||
|                                         try { ws.send(JSON.stringify({ action: 'close', cause: 'noauth', msg: 'tokenrequired', email2fa: email2fa, sms2fa: sms2fa, msg2fa: msg2fa, twoFactorCookieDays: twoFactorCookieDays })); ws.close(); } catch (e) { } | ||||
|                                     } else { | ||||
|                                         // We are authenticated with 2nd factor.
 | ||||
|                                         // Check email verification
 | ||||
|                                         if (emailcheck && (user.email != null) && (!(user._id.split('/')[2].startsWith('~'))) && (user.emailVerified !== true)) { | ||||
|                                             parent.debug('web', 'Invalid login, asking for email validation'); | ||||
|                                             try { ws.send(JSON.stringify({ action: 'close', cause: 'emailvalidation', msg: 'emailvalidationrequired', email2fa: email2fa, sms2fa: sms2fa, email2fasent: true })); ws.close(); } catch (e) { } | ||||
|                                             try { ws.send(JSON.stringify({ action: 'close', cause: 'emailvalidation', msg: 'emailvalidationrequired', email2fa: email2fa, sms2fa: sms2fa, msg2fa: msg2fa, email2fasent: true })); ws.close(); } catch (e) { } | ||||
|                                         } else { | ||||
|                                             func(ws, req, domain, user, null, authData); | ||||
|                                         } | ||||
|  | @ -7601,7 +7601,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF | |||
|                             var sms2fa = (((typeof domain.passwordrequirements != 'object') || (domain.passwordrequirements.sms2factor != false)) && (parent.smsserver != null) && (user.phone != null)); | ||||
|                             var msg2fa = (((typeof domain.passwordrequirements != 'object') || (domain.passwordrequirements.msg2factor != false)) && (parent.msgserver != null) && (parent.msgserver.providers != 0) && (user.msghandle != null)); | ||||
|                             if (s.length != 3) { | ||||
|                                 try { ws.send(JSON.stringify({ action: 'close', cause: 'noauth', msg: 'tokenrequired', email2fa: email2fa, sms2fa: sms2fa, twoFactorCookieDays: twoFactorCookieDays })); ws.close(); } catch (e) { } | ||||
|                                 try { ws.send(JSON.stringify({ action: 'close', cause: 'noauth', msg: 'tokenrequired', email2fa: email2fa, sms2fa: sms2fa, msg2fa: msg2fa, twoFactorCookieDays: twoFactorCookieDays })); ws.close(); } catch (e) { } | ||||
|                             } else { | ||||
|                                 checkUserOneTimePassword(req, domain, user, s[2], null, function (result, authData) { | ||||
|                                     if (result == false) { | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue