ssi.askConsent()
Ask the user whether to give a permission to the requsting web app
This is an asynchronous function that returns a Promise.
Syntax
const booleanValue = await browser.ssi.askConsent(
tabId, // integer
protocolName, // string
credentialName, // string
dialogOptions, // optional object
)
Parameters
tabId
integer
. This is tabs.Tab.id
. See also https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/Tab#id
protocolName
string
. The protocol name targeted
credentialName
string
. The credential name targeted
dialogOptions
(optional)
DialogInfo
. Parameters to build Auth dialog
Return value
A Promise that will be fulfilled with a boolean
value to indicate the authorization result.
Examples
Getting consent
// Authorization will be performed using the secret currently set as primary
// within the specified protocol name and credential name.
const permitted = await browser.ssi.askConsent(
1,
"nostr", // protocol name
"nsec", // credential name
{
// A text description displayed on Auth dialog. Base title (kind such as sign/encrypt
// and site URL) is generated by the system, so add additional information as needed.
caption: "Offer from ABC Company"
}
)
if (permitted) {
// Go to next
}
Case for mandatory
Even when a authorization is still valid, you can require re-authorization to the user. It would be useful at critical times.
const isAuthorized = await browser.ssi.askConsent(
1,
"nostr",
"nsec",
{
enforce: true
}
)
if (!isAuthorized) {
throw new Error("Rejected.")
}
This documentation is derived from ssi.json in gecko-dev-for-ssi.