diff --git a/files/zh-cn/mozilla/add-ons/webextensions/api/identity/launchwebauthflow/index.md b/files/zh-cn/mozilla/add-ons/webextensions/api/identity/launchwebauthflow/index.md index f0eb4515e62617..e70428b5a13553 100644 --- a/files/zh-cn/mozilla/add-ons/webextensions/api/identity/launchwebauthflow/index.md +++ b/files/zh-cn/mozilla/add-ons/webextensions/api/identity/launchwebauthflow/index.md @@ -9,16 +9,16 @@ l10n: 执行 [OAuth2](https://oauth.net/2/) 流程的第一部分,包括用户身份验证和客户端授权。 -此函数的唯一必需参数是服务提供商的授权 URL,其中这一 URL 必须包含一些特定 URL 参数:[重定向 URL](/zh-CN/docs/Mozilla/Add-ons/WebExtensions/API/identity#获取重定向_url) 和扩展的[客户端 ID](/zh-CN/docs/Mozilla/Add-ons/WebExtensions/API/identity#注册你的拓展)。然后服务提供商将: +此函数的唯一必需参数是服务提供商的授权 URL,且它必须包含一些特定 URL 参数:[重定向 URL](/zh-CN/docs/Mozilla/Add-ons/WebExtensions/API/identity#获取重定向_url) 和附加组件的[客户端 ID](/zh-CN/docs/Mozilla/Add-ons/WebExtensions/API/identity#注册你的拓展)。然后服务提供商将: - 对用户进行身份验证(如果需要,也即此时用户尚未登录) -- 要求用户授权扩展访问请求的数据(如果需要,也即此时用户尚未授权扩展) +- 要求用户授权附加组件访问请求的数据(如果需要,也即此时用户尚未授权附加组件) 请注意,如果既不需要身份验证也不需要授权,那么此函数将在没有任何用户交互的情况下完成。 此函数还接受一个可选参数 `interactive`:如果省略或设置为假时,则强制流程在没有任何用户交互的情况下完成。在这种情况下,如果用户需要进行身份验证或授权,则操作将失败。 -此函数返回一个 [`Promise`](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise)。如果身份验证和授权成功,该 Promise 将返回一个包含一些 URL 参数的重定向 URL。根据服务提供商实现的 OAuth2 流程,扩展需要进一步的步骤来获取有效的访问代码,然后扩展可以使用该访问代码来访问用户的数据。 +此函数返回一个 [`Promise`](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise)。如果身份验证和授权成功,该 Promise 将返回一个包含一些 URL 参数的重定向 URL。根据服务提供商实现的 OAuth2 流程,附加组件需要进一步的步骤来获取有效的访问代码,然后附加组件可以使用该访问代码来访问用户的数据。 如果出现任何错误,Promise 将被拒绝并返回一个错误消息。错误条件可能包括: @@ -26,8 +26,8 @@ l10n: - 客户端 ID 与注册的客户端 ID 不匹配 - 重定向 URL 与为此客户端注册的任何重定向 URL 不匹配 - 用户未成功进行身份验证 -- 用户未授权扩展 -- `interactive` 参数被省略或被设置为假,但流程中需要用户交互来授权扩展。 +- 用户未授权附加组件 +- `interactive` 参数被省略或被设置为假,但流程中需要用户交互来授权附加组件。 ## 语法 @@ -44,14 +44,14 @@ let authorizing = browser.identity.launchWebAuthFlow( - : `object`,对验证流程而言,可选的包含如下属性的对象: - `url` - - : `string`,OAuth2 服务提供商提供的获取访问令牌的 URL。这个 URL 的详细信息应该在服务提供商的文档中给出,但 URL 参数应该始终包括[重定向 URL](/zh-CN/docs/Mozilla/Add-ons/WebExtensions/API/identity#获取重定向_url) 和扩展的[客户端 ID](/zh-CN/docs/Mozilla/Add-ons/WebExtensions/API/identity#注册你的拓展)。 + - : `string`,OAuth2 服务提供商提供的获取访问令牌的 URL。这个 URL 的详细信息应该在服务提供商的文档中给出,但 URL 参数应该始终包括[重定向 URL](/zh-CN/docs/Mozilla/Add-ons/WebExtensions/API/identity#获取重定向_url) 和附加组件的[客户端 ID](/zh-CN/docs/Mozilla/Add-ons/WebExtensions/API/identity#注册你的拓展)。 - `redirect_uri` {{optional_inline}} - - : `string`,代表流程完成时扩展被重定向到的 URI。如果与生成的重定向 URL 匹配,则并不需要提供这一属性供浏览器端的验证流程使用。参见[获取重定向 URL](/zh-CN/docs/Mozilla/Add-ons/WebExtensions/API/identity#获取重定向_url)。 + - : `string`,代表流程完成时附加组件被重定向到的 URI。如果与生成的重定向 URL 匹配,则并不需要提供这一属性供浏览器端的验证流程使用。参见[获取重定向 URL](/zh-CN/docs/Mozilla/Add-ons/WebExtensions/API/identity#获取重定向_url)。 - `interactive` {{optional_inline}} - : `boolean`,如果被省略或被设为 `false`,则将强制流程在无用户交互的情况下静默完成。 - 如果用户已经登录并已经授权扩展访问,那么 `launchWebAuthFlow()` 可以在没有任何用户交互的情况下完成。否则(如果服务提供商需要用户登录,或者需要用户授权扩展), `launchWebAuthFlow()` 将提醒用户执行相应操作:也就是说,此时流程将会是交互式的。 + 如果用户已经登录并已经授权附加组件访问,那么 `launchWebAuthFlow()` 可以在没有任何用户交互的情况下完成。否则(如果服务提供商需要用户登录,或者需要用户授权附加组件), `launchWebAuthFlow()` 将提醒用户执行相应操作:也就是说,此时流程将会是交互式的。 拓展不应该在没有用户操作的情况下启动交互式流程。不过,有时拓展仍然希望在没有直接用户操作的情况下访问用户的数据(例如,想象一下一个希望在浏览器启动时访问数据的拓展)。 @@ -59,7 +59,7 @@ let authorizing = browser.identity.launchWebAuthFlow( ### 返回值 -返回值是一个 [`Promise`](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise)。如果身份验证和授权成功,这一 Promise 将会被兑现,其中包含一个重定向 URL,其中包含一些 URL 参数。根据特定服务提供商的 OAuth2 流程,扩展将需要进一步的步骤来获取有效的访问令牌,然后可以使用该访问令牌来访问用户的数据。 +返回值是一个 [`Promise`](/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise)。如果身份验证和授权成功,这一 Promise 将会被兑现,其中包含一个重定向 URL,其中包含一些 URL 参数。根据特定服务提供商的 OAuth2 流程,附加组件将需要进一步的步骤来获取有效的访问令牌,然后可以使用该访问令牌来访问用户的数据。 ## 浏览器兼容性 @@ -67,7 +67,7 @@ let authorizing = browser.identity.launchWebAuthFlow( ## 示例 -下属函数授权一个扩展访问用户的 Google 数据,根据 中的文档。这里并未展示返回的访问令牌的验证部分: +下属函数授权一个附加组件访问用户的 Google 数据,根据 中的文档。这里并未展示返回的访问令牌的验证部分: ```js function validate(redirectURL) {