diff --git a/src/App/Pages/LoginTwoFactorPage.cs b/src/App/Pages/LoginTwoFactorPage.cs
index ad40a9c2b..9c63b75dd 100644
--- a/src/App/Pages/LoginTwoFactorPage.cs
+++ b/src/App/Pages/LoginTwoFactorPage.cs
@@ -75,9 +75,19 @@ namespace Bit.App.Pages
Margin = new Thickness(15, (this.IsLandscape() ? 5 : 0), 15, 25)
};
+ var lostAppButton = new ExtendedButton
+ {
+ Text = AppResources.Lost2FAApp,
+ Style = (Style)Application.Current.Resources["btn-primaryAccent"],
+ Margin = new Thickness(15, 0, 15, 25),
+ Command = new Command(() => Lost2FAApp()),
+ Uppercase = false,
+ BackgroundColor = Color.Transparent
+ };
+
var layout = new StackLayout
{
- Children = { table, codeLabel },
+ Children = { table, codeLabel, lostAppButton },
Spacing = 0
};
@@ -105,6 +115,11 @@ namespace Bit.App.Pages
CodeCell.Entry.FocusWithDelay();
}
+ private void Lost2FAApp()
+ {
+ Device.OpenUri(new Uri("https://vault.bitwarden.com/#/recover"));
+ }
+
private async void Entry_Completed(object sender, EventArgs e)
{
await LogIn();
diff --git a/src/App/Resources/AppResources.Designer.cs b/src/App/Resources/AppResources.Designer.cs
index 5213d2107..3b6dacda5 100644
--- a/src/App/Resources/AppResources.Designer.cs
+++ b/src/App/Resources/AppResources.Designer.cs
@@ -979,6 +979,15 @@ namespace Bit.App.Resources {
}
}
+ ///
+ /// Looks up a localized string similar to Lost authenticator app?.
+ ///
+ public static string Lost2FAApp {
+ get {
+ return ResourceManager.GetString("Lost2FAApp", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Manage.
///
diff --git a/src/App/Resources/AppResources.resx b/src/App/Resources/AppResources.resx
index cdfc8600a..17d281d2c 100644
--- a/src/App/Resources/AppResources.resx
+++ b/src/App/Resources/AppResources.resx
@@ -741,4 +741,7 @@
Manage your logins from any web browser with the bitwarden web vault.
+
+ Lost authenticator app?
+
\ No newline at end of file