• geoscene/identity

OAuthInfo

AMD: require(["geoscene/identity/OAuthInfo"], (OAuthInfo) => { /* code goes here */ });
ESM: import OAuthInfo from "@geoscene/core/identity/OAuthInfo";
类: geoscene/identity/OAuthInfo
继承于:OAuthInfo Accessor
起始版本:GeoScene Maps SDK for JavaScript 4.0

此类包含有关 OAuth 2.0 配置的信息。将其与 IdentityManager 微件结合使用,以帮助使用 OAuth 2.0 身份验证。

一步身份验证已被推荐的代码交换证明密钥 (PKCE) 两步方法所取代。

此更新与 OAuth 2.1 规范中的建议一致。尽管仍支持一步身份验证,但 API 将不再默认为此操作。如果需要保留此设置,则需要将 flowType 设置为 implicit

有关此更新的更多信息,请参阅 4.23 发行说明

另请参阅

构造函数

new OAuthInfo(properties)
参数
properties Object
optional

有关可能传递给构造函数的所有属性的列表,请参见属性

示例
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

将此属性设置为 true,以强制用户使用 userId 中的 id 登录。

更多详情
OAuthInfo
String

OAuth 登录页的区域设置。

更多详情
OAuthInfo
Number

保存的令牌到期前的最短时间 (以分钟为单位),该令牌仍应视为是有效的。

更多详情
OAuthInfo
Boolean

设置为 true 以在弹出窗口中显示 OAuth 登录页面。

更多详情
OAuthInfo
String

适用于使用弹出式用户登录工作流的情况。

更多详情
OAuthInfo
String

传递给 window.open() 的窗口要素。

更多详情
OAuthInfo
String

GeoScene Enterprise 门户 URL。

更多详情
OAuthInfo
Boolean

popupfalse 时,将此属性设置为 true,以便在登录后恢复窗口的位置哈希值。

更多详情
OAuthInfo
String

forceUserIdtrue 时使用的用户 id。

更多详情
OAuthInfo

属性详细信息

appId String

已注册的应用程序 ID。

authNamespace String

具有相同值的应用程序将在同一主机上共享存储的令牌。

默认值:/(正斜杠)
declaredClass Stringreadonly inherited
起始版本: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 或更高版本访问资源并且 popupfalse,则自动默认使用 PKCE 进行两步身份验证。如果访问较早版本的 GeoScene Enterprise 或 popuptrue,则使用一步式身份验证。如果需要弹出窗口,请使用下面描述的 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
});
forceUserId Boolean
起始版本:GeoScene Maps SDK for JavaScript 4.18

将此属性设置为 true,以强制用户使用 userId 中的 id 登录。如果未设置 userId,则在用户登录后更新。如果令牌过期,将要求同一用户重新登录。

默认值:false
另请参阅
locale String

OAuth 登录页的区域设置。默认区域设置基于您的浏览器/操作系统和组织区域设置。可以使用此属性来更改此设置。区域设置需要遵循 geosceneonline.cn 支持的语言短划线国家/地区代码语法。

默认值:基于您的浏览器/操作系统和组织区域设置。
另请参阅
minTimeUntilExpiration Number

保存的令牌到期前的最短时间 (以分钟为单位),该令牌仍应视为是有效的。

默认值:30

设置为 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

popupfalse 时,将此属性设置为 true,以便在登录后恢复窗口的位置哈希值。

默认值:false
另请参阅
userId String
起始版本:GeoScene Maps SDK for JavaScript 4.18

forceUserIdtrue 时使用的用户 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 Object

GeoScene 格式实例的 JSON 表示。有关各种输入 JSON 对象的结构示例,请参阅 GeoScene REST API 文档

返回
类型 描述
* 返回该类的新实例。
hasHandles(groupKey){Boolean}inherited
起始版本: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 表示。

您的浏览器不再受支持。请升级您的浏览器以获得最佳体验。请参阅浏览器弃用帖子以获取更多信息