此类包含有关 OAuth 2.0 配置的信息。将其与 IdentityManager 微件结合使用,以帮助使用 OAuth 2.0 身份验证。
一步身份验证已被推荐的代码交换证明密钥 (PKCE) 两步方法所取代。
此更新与 OAuth 2.1 规范中的建议一致。尽管仍支持一步身份验证,但 API 将不再默认为此操作。如果需要保留此设置,则需要将 flowType 设置为 implicit
。
有关此更新的更多信息,请参阅 4.23 发行说明。
- 另请参阅
构造函数
-
new OAuthInfo(properties)
-
参数properties Objectoptional
有关可能传递给构造函数的所有属性的列表,请参见属性。
示例require(["geoscene/identity/OAuthInfo", "geoscene/identity/IdentityManager"], function (OAuthInfo, geosceneId) { let info = new OAuthInfo({ appId: "<put client id here>", flowType: "authorization-code" // this is needed for popups, otherwise it will revert to implicit flow popup: true // make sure to set callback page to one that supports authentication type }); geosceneId.registerOAuthInfos([info]); })
属性概述
名称 | 类型 | 描述 | 类 |
---|---|---|---|
String | 已注册的应用程序 ID。 更多详情 | OAuthInfo | |
String | 具有相同值的应用程序将在同一主机上共享存储的令牌。 更多详情 | OAuthInfo | |
String | 类的名称。 更多详情 | Accessor | |
Number | 令牌有效的分钟数。 更多详情 | OAuthInfo | |
String | 设置此属性以指定要使用的身份验证类型。 更多详情 | OAuthInfo | |
Boolean | 将此属性设置为 | OAuthInfo | |
String | OAuth 登录页的区域设置。 更多详情 | OAuthInfo | |
Number | 保存的令牌到期前的最短时间 (以分钟为单位),该令牌仍应视为是有效的。 更多详情 | OAuthInfo | |
Boolean | 设置为 | OAuthInfo | |
String | 适用于使用弹出式用户登录工作流的情况。 更多详情 | OAuthInfo | |
String | 传递给 window.open() 的窗口要素。 更多详情 | OAuthInfo | |
String | GeoScene Enterprise 门户 URL。 更多详情 | OAuthInfo | |
Boolean | 当 popup 为 | OAuthInfo | |
String | 当 | OAuthInfo |
属性详细信息
-
appId String
-
已注册的应用程序 ID。
-
authNamespace String
-
具有相同值的应用程序将在同一主机上共享存储的令牌。
- 默认值:/(正斜杠)
-
起始版本:GeoScene Maps SDK for JavaScript 4.7
-
类的名称。声明的类名称格式化为
geoscene.folder.className
。
-
expiration Number
-
令牌有效的分钟数。
- 默认值:20160 (两周)
-
flowType String起始版本:GeoScene Maps SDK for JavaScript 4.23
-
设置此属性以指定要使用的身份验证类型。一步身份验证已被推荐的两步方法所取代 (即,
grant_type=authorization-code
)。此更新与 OAuth 2.1 建议中的建议一致。
可能值 描述 auto 如果从 GeoScene Online 或 GeoScene Enterprise 3.0 或更高版本访问资源并且 popup
为false
,则自动默认使用 PKCE 进行两步身份验证。如果访问较早版本的 GeoScene Enterprise 或popup
为true
,则使用一步式身份验证。如果需要弹出窗口,请使用下面描述的authorization-code
流程。authorization-code 与 auto
类似,这也使用 PKCE 的两步身份验证。将此类型用于使用弹出窗口的应用程序。这不会检查服务器版本。如果在没有 PKCE 支持的旧服务器版本上访问资源,请勿使用此类型。implicit 一步式身份验证。这不再是推荐的方法,并且已被两步身份验证所取代。如果使用较旧的服务器版本 (即 3.0 之前的版本),请使用此类型。有关其他信息,请参阅 OAuth 2.0 安全最新做法。 通过弹出窗口登录到应用程序时,引用的 callback 页面应与使用的任何身份验证类型相兼容。默认的 oauth-callback.html 已更新,允许以两步方法进行这些更新,不过如果使用一步流程,它仍然有效。
可能值:"auto"|"authorization-code"|"implicit"
- 默认值:auto
示例// Default workflow let infoAuto = new OAuthInfo({ appId: "<put client id here>", flowType: "auto" // Default. If using a supported server/portal version and no popup, two-step authentication is used. If not, reverts to `implicit`. popup: false // Default });
// Two-step workflow let infoCode = new OAuthInfo({ appId: "<put client id here>", flowType: "authorization-code" // If using supported server/portal version and a popup, two-step authentication is used. popup: true, popupCallbackUrl: "oauth-callback.html" // Make sure the callback page supports this approach });
// One-step workflow let infoImplicit = new OAuthInfo({ appId: "<put client id here>", flowType: "implicit" // no longer recommended. Should be used if working with older versions of Server/Portal, (ie. <10.9). popup: true, popupCallbackUrl: "oauth-callback.html" // Updated callback page works with both two-step and one-step authentication });
-
locale String
-
OAuth 登录页的区域设置。默认区域设置基于您的浏览器/操作系统和组织区域设置。可以使用此属性来更改此设置。区域设置需要遵循 geosceneonline.cn 支持的语言短划线国家/地区代码语法。
- 默认值:基于您的浏览器/操作系统和组织区域设置。
- 另请参阅
-
minTimeUntilExpiration Number
-
保存的令牌到期前的最短时间 (以分钟为单位),该令牌仍应视为是有效的。
- 默认值:30
-
popup Boolean
-
设置为
true
以在弹出窗口中显示 OAuth 登录页面。确保在popupCallbackUrl
中引用了一个有效的回调页面。 引用的回调页面应与使用的任何身份验证类型相兼容。默认的 oauth-callback.html 已更新,允许以两步方法进行这些更新,不过如果使用一步流程,它仍然有效。- 默认值:false
- 另请参阅
-
popupCallbackUrl String
-
适用于使用弹出式用户登录工作流的情况。这是一个相对页面 URL,可在成功登录后将用户重定向到受保护的应用程序。
引用的回调页面应与使用的任何身份验证类型相兼容。默认的 oauth-callback.html 已更新,允许以两步方法进行这些更新,不过如果使用一步流程,它仍然有效。
- 默认值:"oauth-callback.html"
- 另请参阅
-
popupWindowFeatures String
-
传递给 window.open() 的窗口要素。
- 默认值:height=490,width=800,resizable,scrollbars,status
-
portalUrl String
-
GeoScene Enterprise 门户 URL。
- 默认值:"https://www.geosceneonline.cn/geoscene"
-
preserveUrlHash Boolean起始版本:GeoScene Maps SDK for JavaScript 4.14
-
当 popup 为
false
时,将此属性设置为true
,以便在登录后恢复窗口的位置哈希值。- 默认值:false
- 另请参阅
-
userId String起始版本:GeoScene Maps SDK for JavaScript 4.18
-
当
forceUserId
为true
时使用的用户 id。这会在用户登录后更新,或者可以预设为特定的 id。- 另请参阅
方法概述
名称 | 返回值类值 | 描述 | 类 |
---|---|---|---|
添加一个或多个与对象的生命周期相关联的句柄。 更多详情 | Accessor | ||
OAuthInfo | 创建 OAuthInfo 对象的副本。 更多详情 | OAuthInfo | |
* | 创建此类的新实例并使用从 GeoScene 产品生成的 JSON 对象值对其进行初始化。 更多详情 | OAuthInfo | |
Boolean | 如果存在指定的句柄组,则返回 true。 更多详情 | Accessor | |
移除对象拥有的句柄组。 更多详情 | Accessor | ||
Object | 将此类的实例转换为 GeoScene Portal JSON 表示。 更多详情 | OAuthInfo |
方法详细说明
-
addHandles(handleOrHandles, groupKey)inherited起始版本:GeoScene Maps SDK for JavaScript 4.25
-
添加一个或多个与对象的生命周期相关联的句柄。当对象被销毁时,将移除句柄。
// Manually manage handles const handle = reactiveUtils.when( () => !view.updating, () => { wkidSelect.disabled = false; }, { once: true } ); // Handle gets removed when the object is destroyed. this.addHandles(handle);
参数handleOrHandles WatchHandle|WatchHandle[]对象销毁后,标记为要移除的句柄。
groupKey *optional标识句柄应添加到的组的键。组中的所有句柄稍后都可使用 Accessor.removeHandles() 进行删除。如果未提供键,则句柄将被添加到默认组。
-
clone(){OAuthInfo}起始版本:GeoScene Maps SDK for JavaScript 4.4
-
创建 OAuthInfo 对象的副本。
返回类型 描述 OAuthInfo 返回 OAuthInfo 的副本。
-
fromJSON(json){*}static
-
创建此类的新实例并使用从 GeoScene 产品生成的 JSON 对象值对其进行初始化。传入到输入
json
参数的对象通常来自对 REST API 中查询操作的响应或来自另一个 GeoScene 产品的 toJSON() 方法。有关何时以及如何使用该函数的详细信息和示例,请参阅指南中的使用 fromJSON() 主题。参数json ObjectGeoScene 格式实例的 JSON 表示。有关各种输入 JSON 对象的结构示例,请参阅 GeoScene REST API 文档。
返回类型 描述 * 返回该类的新实例。
-
起始版本:GeoScene Maps SDK for JavaScript 4.25
-
如果存在指定的句柄组,则返回 true。
参数groupKey *optional组键。
返回类型 描述 Boolean 如果存在指定的句柄组,则返回 true
。示例// Remove a named group of handles if they exist. if (obj.hasHandles("watch-view-updates")) { obj.removeHandles("watch-view-updates"); }
-
removeHandles(groupKey)inherited起始版本:GeoScene Maps SDK for JavaScript 4.25
-
移除对象拥有的句柄组。
参数groupKey *optional要移除的组键或组键的数组或集合。
示例obj.removeHandles(); // removes handles from default group obj.removeHandles("handle-group"); obj.removeHandles("other-handle-group");
-
toJSON(){Object}
-
将此类的实例转换为 GeoScene Portal JSON 表示。有关详细信息,请参阅使用 fromJSON() 指南主题。
返回类型 描述 Object 此类实例的 GeoScene Portal JSON 表示。