-
Notifications
You must be signed in to change notification settings - Fork 37
Closed
Labels
Description
We have a use case where a wallet backend handles HTTPS Deep Links (e.g., https://wallet.example.com) if the mobile platform does not invoke the user's wallet on the mobile device.
Expected flow:
- The user visits the RP in their mobile browser.
- The user taps a button containing a HTTPS Deep Link on the RP website.
- The mobile browser checks with the mobile platform if the intent can be handled by an app.
- In this case, it cannot be handled because the wallet is not installed.
- The mobile browser redirects to the wallet backend (e.g., https://wallet.example.com). Note, this is standard behaviour on mobile platforms.
- The wallet backend generates an error and redirects the user back with a
wallet_unavailableerror. - The RP can now respond to the
wallet_unavailableerror with an alternative flow that does not require a wallet.
To improve UX, the wallet backend could redirect the user back to the RP with an error code, but we have not defined one for this case. I couldn't find a suitable error code in OAuth either. Defining a custom error code is not an option since it would be wallet vendor specific and this information should not be disclosed to the RP.
My suggestion is to define a new error code, wallet_unavailable, that MAY be returned in such cases. Note that, as with many OAuth implementations, it is at the AS's discretion to return an error code at all.