diff --git a/src/app/accounts/accountsLoginController.js b/src/app/accounts/accountsLoginController.js index f371e0f6abd..aec7cc68aad 100644 --- a/src/app/accounts/accountsLoginController.js +++ b/src/app/accounts/accountsLoginController.js @@ -90,10 +90,19 @@ angular for (var i = 0; i < keys.length; i++) { var provider = $filter('filter')(constants.twoFactorProviderInfo, { type: keys[i], active: true }); if (provider.length && provider[0].priority > providerPriority) { + if (provider[0].type === constants.twoFactorProvider.u2f && !u2f.isSupported) { + continue; + } + providerType = provider[0].type; providerPriority = provider[0].priority; } } + + if (providerType === null) { + return null; + } + return parseInt(providerType); } diff --git a/src/app/accounts/accountsTwoFactorMethodsController.js b/src/app/accounts/accountsTwoFactorMethodsController.js index 5b0ce661755..36f3be3d9ef 100644 --- a/src/app/accounts/accountsTwoFactorMethodsController.js +++ b/src/app/accounts/accountsTwoFactorMethodsController.js @@ -18,7 +18,7 @@ if (providers.hasOwnProperty(constants.twoFactorProvider.duo)) { add(constants.twoFactorProvider.duo); } - if (providers.hasOwnProperty(constants.twoFactorProvider.u2f)) { + if (providers.hasOwnProperty(constants.twoFactorProvider.u2f) && u2f.isSupported) { add(constants.twoFactorProvider.u2f); } diff --git a/src/app/accounts/views/accountsLoginTwoFactor.html b/src/app/accounts/views/accountsLoginTwoFactor.html index c9120d4cbe1..9961e22f231 100644 --- a/src/app/accounts/views/accountsLoginTwoFactor.html +++ b/src/app/accounts/views/accountsLoginTwoFactor.html @@ -143,6 +143,15 @@ +
+ This account has two-factor login enabled, however, none of the configured two-factor providers are supported by this + web browser. +
+ Please use a supported web browser (such as Chrome) and/or add additional providers that are better supported + across web browsers (such as an Authenticator App). +