Google Authenticator – WordPress Two Factor Authentication (2FA) - Version 4.4.7

Version Description

  • Google Authenticator (2FA) : Updated the error message for 2-factor configuration.
Download this release

Release Info

Developer cyberlord92
Plugin Icon 128x128 Google Authenticator – WordPress Two Factor Authentication (2FA)
Version 4.4.7
Comparing to
See all releases

Code changes from version 4.4.6 to 4.4.7

class-miniorange-2-factor-pass2fa-login.php CHANGED
@@ -574,6 +574,18 @@ class Miniorange_Password_2Factor_Login{
574
 
575
  function mo_2_factor_enable_jquery_default_login(){
576
  wp_enqueue_script('jquery');
 
 
 
 
 
 
 
 
 
 
 
 
577
  }
578
 
579
 
574
 
575
  function mo_2_factor_enable_jquery_default_login(){
576
  wp_enqueue_script('jquery');
577
+
578
+ if(get_option('mo2f_deviceid_enabled')){
579
+ wp_enqueue_script( 'jquery_script', plugins_url('includes/js/rba/js/jquery-1.9.1.js', __FILE__ ), array(), '', true);
580
+ wp_enqueue_script( 'flash_script', plugins_url('includes/js/rba/js/jquery.flash.js', __FILE__ ), array(), '', true);
581
+ wp_enqueue_script( 'uaparser_script', plugins_url('includes/js/rba/js/ua-parser.js', __FILE__ ), array(), '', true);
582
+ wp_enqueue_script( 'client_script', plugins_url('includes/js/rba/js/client.js', __FILE__ ), array(), '', true);
583
+ wp_enqueue_script( 'device_script', plugins_url('includes/js/rba/js/device_attributes.js', __FILE__ ), array(), '', true);
584
+ wp_enqueue_script( 'swf_script', plugins_url('includes/js/rba/js/swfobject.js', __FILE__ ), array(), '', true);
585
+ wp_enqueue_script( 'font_script', plugins_url('includes/js/rba/js/fontdetect.js', __FILE__ ), array(), '', true);
586
+ wp_enqueue_script( 'murmur_script', plugins_url('includes/js/rba/js/murmurhash3.js', __FILE__ ), array(), '', true);
587
+ wp_enqueue_script( 'miniorange_script', plugins_url('includes/js/rba/js/miniorange-fp.js', __FILE__ ), array('swf_script'), '', true);
588
+ }
589
  }
590
 
591
 
includes/css/bootstrap.min.css CHANGED
@@ -515,4 +515,4 @@ button.mo2f_close {
515
  border-radius: 4px;
516
  padding: 1px 5px;
517
  background: rgba(1, 145, 191, 0.117647);
518
- }
515
  border-radius: 4px;
516
  padding: 1px 5px;
517
  background: rgba(1, 145, 191, 0.117647);
518
+ }
includes/js/rba/js/device_attributes.js CHANGED
@@ -2,9 +2,9 @@ var jsReady=!1;function isReady(){return jsReady}function pageInit(){jsReady=!0;
2
  function populateFontList(a){var b=0,c=0,e;for(e in a){var d=a[e],d=d.replace(/^\s\s*/,"").replace(/\s\s*$/,"");d.match(/[_\-\s]Italic$/)||d.match(/[_\-\s](Demi)?[Bb]old$/)||d.match(/[_\-\s]Medium$/)||d.match(/[_\-\s](Ultra)?[Ll]ight$/)||d.match(/[_\-\s]Condensed$/)||(d=d.replace(/\s*Regular$/,""),c++);fontlist=0==b?d:fontlist+(", "+d);b++}checkFontsExist=!0}
3
  function get_browser_attributes(){var a=new ClientJS,b=a.getUserAgent();updateJSONObject("browser.useragent",b);b=a.getScreenPrint();updateJSONObject("browser.screenprint",b);fingerprint=a.getFingerprint();updateJSONObject("device.fingerprint",fingerprint);b=a.getPlugins();updateJSONObject("browser.plugins",b);b=a.isLocalStorage();updateJSONObject("browser.hasLocalStorage",b);b=a.isSessionStorage();updateJSONObject("browser.hasSessionStorage",b);b=a.getTimeZone();updateJSONObject("browser.timezone",
4
  b);b=a.getLanguage();updateJSONObject("browser.language",b);b=a.getSystemLanguage();updateJSONObject("browser.sytemLanguage",b);b=a.isCookie();updateJSONObject("browser.hasCookie",b);b=a.getCanvasPrint();updateJSONObject("browser.canvasPrint",b);var c=a.isMobile(),b=a.getBrowser();updateJSONObject("browser.type",b);0==c?($("#getDeviceType").text("Laptop"),updateJSONObject("device.type","Laptop")):updateJSONObject("device.type","Mobile");updateJSONObject("time.currentTime",(new Date).toTimeString());
5
- c="";a.isMobile()?(a.isMobileAndroid()?c="Android":a.isMobileOpera()?c="Opera":a.isMobileWindows()?c="Windows":a.isMobileBlackBerry()?c="BlackBerry":a.isMobileIOS()&&(a.isIphone()?c="iPhone":a.isIpad()?c="iPad":a.isIpod()&&(c="iPod")),c=c+" "+a.getOSVersion()+" / "+a.getBrowser()):c=a.getOS()+" "+a.getOSVersion()+" / "+a.getBrowser();updateJSONObject("profile.name",c);$("#title-fingerprint").text(fingerprint);$("#getBrowser").text(b)}
6
  function hasFlash(){try{if(new ActiveXObject("ShockwaveFlash.ShockwaveFlash"))return!0}catch(a){if(navigator.mimeTypes&&void 0!=navigator.mimeTypes["application/x-shockwave-flash"]&&navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin)return!0}return!1}
7
  var onSuccess=function(a){countryName=a.country.names.en;countryCode=a.country.iso_code;latitude=a.location.latitude;longitude=a.location.longitude;ip=a.traits.ip_address;timeZone=a.location.time_zone;region=a.subdivisions[0].names.en;regionCode=a.subdivisions[0].iso_code;postalCode=a.postal.code;city=a.city.names.en;continent=a.continent.names.en;continentCode=a.continent.code;isp=a.traits.isp;updateJSONObject("location.countryName",countryName);updateJSONObject("location.countryCode",countryCode);
8
- updateJSONObject("location.latitude",latitude);updateJSONObject("location.longitude",longitude);updateJSONObject("location.ip",ip);updateJSONObject("location.timeZone",timeZone);updateJSONObject("location.region",region);updateJSONObject("location.regionCode",regionCode);updateJSONObject("location.postalCode",postalCode);updateJSONObject("location.city",city);updateJSONObject("location.continent",continent);updateJSONObject("location.continentCode",continentCode);updateJSONObject("location.isp",isp)},
9
  onError=function(a){console.log("Couldn't get the location.");updateJSONObject('location.ip',$('#mo_client_ip').val());};function fetch_client_whorls(){$("#message").hide();hasFlash()&&checkFontsExist&&updateJSONObject("system.fonts",fontlist);get_browser_attributes();/*geoip2.insights(onSuccess,onError);*/set_dom_storage()}function updateJSONObject(a,b){rbaAttributes.attributes.push({attrName:a,attrValue:b})}
10
  function set_dom_storage(){try{localStorage.miniorange="yea",sessionStorage.miniorange="yea"}catch(a){}};
2
  function populateFontList(a){var b=0,c=0,e;for(e in a){var d=a[e],d=d.replace(/^\s\s*/,"").replace(/\s\s*$/,"");d.match(/[_\-\s]Italic$/)||d.match(/[_\-\s](Demi)?[Bb]old$/)||d.match(/[_\-\s]Medium$/)||d.match(/[_\-\s](Ultra)?[Ll]ight$/)||d.match(/[_\-\s]Condensed$/)||(d=d.replace(/\s*Regular$/,""),c++);fontlist=0==b?d:fontlist+(", "+d);b++}checkFontsExist=!0}
3
  function get_browser_attributes(){var a=new ClientJS,b=a.getUserAgent();updateJSONObject("browser.useragent",b);b=a.getScreenPrint();updateJSONObject("browser.screenprint",b);fingerprint=a.getFingerprint();updateJSONObject("device.fingerprint",fingerprint);b=a.getPlugins();updateJSONObject("browser.plugins",b);b=a.isLocalStorage();updateJSONObject("browser.hasLocalStorage",b);b=a.isSessionStorage();updateJSONObject("browser.hasSessionStorage",b);b=a.getTimeZone();updateJSONObject("browser.timezone",
4
  b);b=a.getLanguage();updateJSONObject("browser.language",b);b=a.getSystemLanguage();updateJSONObject("browser.sytemLanguage",b);b=a.isCookie();updateJSONObject("browser.hasCookie",b);b=a.getCanvasPrint();updateJSONObject("browser.canvasPrint",b);var c=a.isMobile(),b=a.getBrowser();updateJSONObject("browser.type",b);0==c?($("#getDeviceType").text("Laptop"),updateJSONObject("device.type","Laptop")):updateJSONObject("device.type","Mobile");updateJSONObject("time.currentTime",(new Date).toTimeString());
5
+ c="";a.isMobile()?(a.isMobileAndroid()?c="Android":a.isMobileOpera()?c="Opera":a.isMobileWindows()?c="Windows":a.isMobileBlackBerry()?c="BlackBerry":a.isMobileIOS()&&(a.isIphone()?c="iPhone":a.isIpad()?c="iPad":a.isIpod()&&(c="iPod")),c=c+" "+a.getOSVersion()+" / "+a.getBrowser()):c=a.getOS()+" "+a.getOSVersion()+" / "+a.getBrowser();updateJSONObject("profile.name",c);$("#title-fingerprint").text(fingerprint);$("#getBrowser").text(b);if($("#morba_loginform").length){$("#miniorange_rba_attribures").val(JSON.stringify(rbaAttributes.attributes));$("#morba_loginform").submit();}}
6
  function hasFlash(){try{if(new ActiveXObject("ShockwaveFlash.ShockwaveFlash"))return!0}catch(a){if(navigator.mimeTypes&&void 0!=navigator.mimeTypes["application/x-shockwave-flash"]&&navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin)return!0}return!1}
7
  var onSuccess=function(a){countryName=a.country.names.en;countryCode=a.country.iso_code;latitude=a.location.latitude;longitude=a.location.longitude;ip=a.traits.ip_address;timeZone=a.location.time_zone;region=a.subdivisions[0].names.en;regionCode=a.subdivisions[0].iso_code;postalCode=a.postal.code;city=a.city.names.en;continent=a.continent.names.en;continentCode=a.continent.code;isp=a.traits.isp;updateJSONObject("location.countryName",countryName);updateJSONObject("location.countryCode",countryCode);
8
+ updateJSONObject("location.latitude",latitude);updateJSONObject("location.longitude",longitude);updateJSONObject("location.ip",ip);updateJSONObject("location.timeZone",timeZone);updateJSONObject("location.region",region);updateJSONObject("location.regionCode",regionCode);updateJSONObject("location.postalCode",postalCode);updateJSONObject("location.city",city);updateJSONObject("location.continent",continent);updateJSONObject("location.continentCode",continentCode);updateJSONObject("location.isp",isp);},
9
  onError=function(a){console.log("Couldn't get the location.");updateJSONObject('location.ip',$('#mo_client_ip').val());};function fetch_client_whorls(){$("#message").hide();hasFlash()&&checkFontsExist&&updateJSONObject("system.fonts",fontlist);get_browser_attributes();/*geoip2.insights(onSuccess,onError);*/set_dom_storage()}function updateJSONObject(a,b){rbaAttributes.attributes.push({attrName:a,attrValue:b})}
10
  function set_dom_storage(){try{localStorage.miniorange="yea",sessionStorage.miniorange="yea"}catch(a){}};
includes/js/rba/js/miniorange-fp.js CHANGED
@@ -13,7 +13,7 @@ function initializeJS() {
13
  fontCollectionObjectDiv.style.width = "0px";
14
  fontCollectionObjectDiv.style.height = "0px";
15
 
16
- fontCollectionObjectDiv.innerHTML = "<object id='FontList' width='1' height='1' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab'> <param name='movie' value='wp-content/plugins/miniorange-2-factor-authentication/includes/js/rba/js/fonts.swf' /> <param name='quality' value='high' /> <param name='bgcolor' value='#869ca7' /> <param name='allowScriptAccess' value='always' /> <embed src='wp-content/plugins/miniorange-2-factor-authentication/includes/js/rba/js/fonts.swf' quality='high' bgcolor='#869ca7' width='1' height='1' name='fonts' align='middle' play='true' loop='false' quality='high' allowScriptAccess='always' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer'> </embed> </object>";
17
 
18
  document.body.appendChild(fontCollectionObjectDiv);
19
 
13
  fontCollectionObjectDiv.style.width = "0px";
14
  fontCollectionObjectDiv.style.height = "0px";
15
 
16
+ fontCollectionObjectDiv.innerHTML = "<object id='FontList' width='1' height='1' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab'> <param name='movie' value='/wp-content/plugins/miniorange-2-factor-authentication/includes/js/rba/js/fonts.swf' /> <param name='quality' value='high' /> <param name='bgcolor' value='#869ca7' /> <param name='allowScriptAccess' value='always' /> <embed src='/wp-content/plugins/miniorange-2-factor-authentication/includes/js/rba/js/fonts.swf' quality='high' bgcolor='#869ca7' width='1' height='1' name='fonts' align='middle' play='true' loop='false' quality='high' allowScriptAccess='always' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer'> </embed> </object>";
17
 
18
  document.body.appendChild(fontCollectionObjectDiv);
19
 
miniorange_2_factor_settings.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: miniOrange 2 Factor Authentication
4
  * Plugin URI: http://miniorange.com
5
  * Description: This plugin provides various two-factor authentication methods as an additional layer of security for wordpress login. We Support Phone Call, SMS, Email Verification, QR Code, Push, Soft Token, Google Authenticator, Authy, Security Questions(KBA), Woocommerce front-end login, Shortcodes for custom login pages.
6
- * Version: 4.4.6
7
  * Author: miniOrange
8
  * Author URI: http://miniorange.com
9
  * License: GPL2
@@ -1135,7 +1135,7 @@ class Miniorange_Authentication {
1135
  $this->mo_auth_show_error_message();
1136
  }
1137
  }else{
1138
- update_option( 'mo2f_message','Error occurred while validating the OTP. Please try again. Possible causes: <br />1. You have enter invalid OTP.<br />2. You App Time is not sync.Go to seetings and tap on Time correction for codes and tap on Sync now .');
1139
  $this->mo_auth_show_error_message();
1140
  }
1141
  }else{
@@ -1209,7 +1209,7 @@ class Miniorange_Authentication {
1209
  $this->mo_auth_show_error_message();
1210
  }
1211
  }else{
1212
- update_option( 'mo2f_message','Error occurred while validating the OTP. Please try again. Possible causes: <br />1. You have enter invalid OTP.<br />2. You App Time is not sync.Go to seetings and tap on Time correction for codes and tap on Sync now .');
1213
  $this->mo_auth_show_error_message();
1214
  }
1215
  }else{
3
  * Plugin Name: miniOrange 2 Factor Authentication
4
  * Plugin URI: http://miniorange.com
5
  * Description: This plugin provides various two-factor authentication methods as an additional layer of security for wordpress login. We Support Phone Call, SMS, Email Verification, QR Code, Push, Soft Token, Google Authenticator, Authy, Security Questions(KBA), Woocommerce front-end login, Shortcodes for custom login pages.
6
+ * Version: 4.4.7
7
  * Author: miniOrange
8
  * Author URI: http://miniorange.com
9
  * License: GPL2
1135
  $this->mo_auth_show_error_message();
1136
  }
1137
  }else{
1138
+ update_option( 'mo2f_message','Error occurred while validating the OTP. Please try again. Possible causes: <br />1. You have entered an invalid OTP.<br />2. You App Time is not in sync. Go to Settings and tap on Time correction for codes and tap on Sync now .');
1139
  $this->mo_auth_show_error_message();
1140
  }
1141
  }else{
1209
  $this->mo_auth_show_error_message();
1210
  }
1211
  }else{
1212
+ update_option( 'mo2f_message','Error occurred while validating the OTP. Please try again. Possible causes: <br />1. You have entered an invalid OTP.<br />2. You App Time is not in sync. Go to Settings and tap on Time correction for codes and tap on Sync now .');
1213
  $this->mo_auth_show_error_message();
1214
  }
1215
  }else{
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: miniOrange
3
  Tags: google authenticator, two factor authentication, two factor, 2FA, 2 factor authentication, two step verification, 1 google authenticator, login, authy, authy two factor, Clef, 2 Factor, yubico, Two-Factor Authentication, Mobile Authentication, otp, strong authentication, 2 step authentication, smartphone authentication, Multifactor authentication, multi factor authentication, multi factor, no password, passwordless login, security, website security, one time passcode, password, soft token, woocommerce, authenticate, two factor auth, two-factor, duo, QR Code, QR Code Authentication, scan QR Code, wordfence, login security, google authenticator, google , email verification, trusted device, device Id , KBA , knowledge based authentication
4
  Requires at least: 3.0.1
5
  Tested up to: 4.7.3
6
- Stable tag: 4.4.6
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -238,11 +238,15 @@ miniOrange authentication service has 15+ authentication methods.One time passco
238
  8. Push Notification and Email Verification
239
 
240
 
241
- == Changelog ==
242
-
243
- = 4.4.6 =
 
 
 
244
  * Google Authenticator (2FA) : Instructions for login in case user get locked out.
245
 
 
246
  = 4.4.5 =
247
  * Google Authenticator (2FA) : Fixed the issue of session variable on the login with username page.
248
 
3
  Tags: google authenticator, two factor authentication, two factor, 2FA, 2 factor authentication, two step verification, 1 google authenticator, login, authy, authy two factor, Clef, 2 Factor, yubico, Two-Factor Authentication, Mobile Authentication, otp, strong authentication, 2 step authentication, smartphone authentication, Multifactor authentication, multi factor authentication, multi factor, no password, passwordless login, security, website security, one time passcode, password, soft token, woocommerce, authenticate, two factor auth, two-factor, duo, QR Code, QR Code Authentication, scan QR Code, wordfence, login security, google authenticator, google , email verification, trusted device, device Id , KBA , knowledge based authentication
4
  Requires at least: 3.0.1
5
  Tested up to: 4.7.3
6
+ Stable tag: 4.4.7
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
238
  8. Push Notification and Email Verification
239
 
240
 
241
+ == Changelog ==
242
+
243
+ = 4.4.7 =
244
+ * Google Authenticator (2FA) : Updated the error message for 2-factor configuration.
245
+
246
+ = 4.4.6 =
247
  * Google Authenticator (2FA) : Instructions for login in case user get locked out.
248
 
249
+
250
  = 4.4.5 =
251
  * Google Authenticator (2FA) : Fixed the issue of session variable on the login with username page.
252