take whole otpauth URI

This commit is contained in:
Kyle Spearrin 2019-06-05 00:41:12 -04:00
parent c3f91761f6
commit 67da9387ff
1 changed files with 16 additions and 8 deletions

View File

@ -51,17 +51,25 @@ namespace Bit.App.Pages
// Stop analysis until we navigate away so we don't keep reading barcodes
_zxing.IsAnalyzing = false;
_zxing.IsScanning = false;
if(!string.IsNullOrWhiteSpace(result?.Text) &&
Uri.TryCreate(result.Text, UriKind.Absolute, out Uri uri) &&
!string.IsNullOrWhiteSpace(uri?.Query))
var text = result?.Text;
if(!string.IsNullOrWhiteSpace(text))
{
var queryParts = uri.Query.Substring(1).ToLowerInvariant().Split('&');
foreach(var part in queryParts)
if(text.StartsWith("otpauth://totp"))
{
if(part.StartsWith("secret="))
_callback(text);
return;
}
else if(Uri.TryCreate(text, UriKind.Absolute, out Uri uri) &&
!string.IsNullOrWhiteSpace(uri?.Query))
{
var queryParts = uri.Query.Substring(1).ToLowerInvariant().Split('&');
foreach(var part in queryParts)
{
_callback(part.Substring(7)?.ToUpperInvariant());
return;
if(part.StartsWith("secret="))
{
_callback(part.Substring(7)?.ToUpperInvariant());
return;
}
}
}
}