[pve-devel] [PATCH widget-toolkit] improve error handling when adding webauthn entries

Thomas Lamprecht t.lamprecht at proxmox.com
Thu Nov 18 08:24:54 CET 2021


On 17.11.21 09:35, Wolfgang Bumiller wrote:
> There are cases where we directly throw a string error
> (particularly, when navigator.credentials.create() fails,
> for example when trying to register the same WA device to
> the same user twice), which would end up with the WA window
> simply not closing before.
> 
> Signed-off-by: Wolfgang Bumiller <w.bumiller at proxmox.com>
> ---
>  src/window/AddWebauthn.js | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/src/window/AddWebauthn.js b/src/window/AddWebauthn.js
> index f4a0b10..77d0914 100644
> --- a/src/window/AddWebauthn.js
> +++ b/src/window/AddWebauthn.js
> @@ -141,7 +141,12 @@ Ext.define('Proxmox.window.AddWebauthn', {
>  		    params,
>  		});
>  	    } catch (response) {
> -		let error = response.result.message;
> +		let error = response;
> +		if (typeof error !== "string") {

why not

if (typeof error === "object") {

as just because it isn't a string it doesn't need to be a valid object..

> +		    // in case it came from an api request:
> +		    error = error.result.message;

maybe use the optional chaining operator here to make the error path a bit
more robust.

> +		}
> +
>  		console.error(error); // for debugging if it's not displayable...

should above be moved above the if then? To ensure that as much info as possible
is available from the error?

>  		Ext.Msg.alert(gettext('Error'), error);
>  	    }
> 






More information about the pve-devel mailing list