此类包含有关 OAuth 2.0 配置的信息。将其与 IdentityManager 微件结合使用,以帮助使用 OAuth 2.0 身份验证。
一步验证已被推荐的 代码交换证明密钥 (PKCE) 的两步方法所取代。
此更新与 OAuth 2.1 规范中的建议一致。尽管仍支持一步验证,但 API 将不再默认为此操作。如果需要保留此设置,则需要将 flowType 设置为 implicit
。
有关此更新的更多信息,请参阅 4.23 发行说明。
- 另请参阅:
构造函数
-
new OAuthInfo(properties)
-
参数:properties Object可选
有关可能传递给构造函数的所有属性的列表,请参见属性。
示例: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 | |
整数 | 更多信息 令牌有效的分钟数。 | 更多信息 | OAuthInfo | |
String | 更多信息 设置此属性以指定要使用的身份验证类型。 | 更多信息 | OAuthInfo | |
布尔值 | 更多信息 将此属性设置为 | 更多信息 | OAuthInfo | |
String | 更多信息 OAuth 登录页的区域设置。 | 更多信息 | OAuthInfo | |
整数 | 更多信息 保存的令牌到期前的最短时间(以分钟为单位),仍应视为有效。 | 更多信息 | OAuthInfo | |
布尔值 | 更多信息 设置为 | 更多信息 | OAuthInfo | |
String | 更多信息 适用于使用弹出式用户登录工作流的情况。 | 更多信息 | OAuthInfo | |
String | 更多信息 传递给 window.open() 的窗口要素。 | 更多信息 | OAuthInfo | |
String | 更多信息 GeoScene Enterprise 门户 URL。 | 更多信息 | OAuthInfo | |
布尔值 | 更多信息 当 popup 为 | 更多信息 | OAuthInfo | |
String | 更多信息
| 更多信息 | OAuthInfo |
属性详情
-
appId String
-
已注册的应用程序 ID。
-
authNamespace String
-
具有相同值的应用程序将在同一主机上共享存储的令牌。
- 默认值:/(正斜杠)
-
起始版本:GeoScene API for JavaScript 4.7
-
类的名称。声明的类名的格式为
geoscene.folder.className
。
-
expiration Number
-
令牌有效的分钟数。
- 默认值:20160 (两周)
-
flowType String起始版本:GeoScene API 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 来帮助解决此问题。引用的回调页面应该与使用的任何身份验证类型兼容。默认的 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 API for JavaScript 4.14
-
当 popup 为
false
时将此属性设置为true
,以便在登录后恢复窗口的位置哈希值。- 默认值:false
- 另请参阅:
-
userId String起始版本:GeoScene API for JavaScript 4.18
-
forceUserId
为true
时使用的用户 ID。这会在用户登录后更新,或者可以预设为特定的 ID。- 另请参阅:
方法概述
名称 | 返回类型 | 描述 | 类 | |
---|---|---|---|---|
OAuthInfo | 更多信息 创建 OAuthInfo 对象的副本。 | 更多信息 | OAuthInfo | |
* | 更多信息 创建此类的新实例,并使用从 GeoScene 产品生成的 JSON 对象中的值对其进行初始化。 | 更多信息 | OAuthInfo | |
Object | 更多信息 将此类的实例转换为其 GeoScene portal JSON 表示形式。 | 更多信息 | OAuthInfo |
方法详情
-
clone(){OAuthInfo}起始版本:GeoScene API 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 文档。
返回:类型 说明 * 返回此类的新实例。
-
toJSON(){Object}
-
将此类的实例转换为其 GeoScene portal JSON 表示形式。有关更多信息,请参阅 fromJSON()主题。
返回:类型 说明 Object 此类示例的 GeoScene portal JSON 表现形式。