mirror of
https://github.com/bitwarden/mobile
synced 2025-12-05 23:53:33 +00:00
take whole otpauth URI
This commit is contained in:
@@ -51,17 +51,25 @@ namespace Bit.App.Pages
|
|||||||
// Stop analysis until we navigate away so we don't keep reading barcodes
|
// Stop analysis until we navigate away so we don't keep reading barcodes
|
||||||
_zxing.IsAnalyzing = false;
|
_zxing.IsAnalyzing = false;
|
||||||
_zxing.IsScanning = false;
|
_zxing.IsScanning = false;
|
||||||
if(!string.IsNullOrWhiteSpace(result?.Text) &&
|
var text = result?.Text;
|
||||||
Uri.TryCreate(result.Text, UriKind.Absolute, out Uri uri) &&
|
if(!string.IsNullOrWhiteSpace(text))
|
||||||
!string.IsNullOrWhiteSpace(uri?.Query))
|
|
||||||
{
|
{
|
||||||
var queryParts = uri.Query.Substring(1).ToLowerInvariant().Split('&');
|
if(text.StartsWith("otpauth://totp"))
|
||||||
foreach(var part in queryParts)
|
|
||||||
{
|
{
|
||||||
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());
|
if(part.StartsWith("secret="))
|
||||||
return;
|
{
|
||||||
|
_callback(part.Substring(7)?.ToUpperInvariant());
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user