MobileFirst OAuth 和注销

2023-12-05

我有一个访问两个适配器的测试应用程序:

  1. 由引用领域的 SecurityTest 保护的 JavaScript 适配器
  2. 一个 Java 适配器,其方法受与同一领域对应的 OAuth 范围保护。

如果我遵循这个顺序,一切都会按预期进行:

  1. 尝试访问 JS 适配器,我受到质询、身份验证、获取数据。
  2. WL.Client.isUserAuthenticated() 和 WL.Client.getUserInfo() 现在的行为符合预期
  3. 使用 WL.Client.logout() 注销
  4. WL.Client.isUserAuthenticated() 现在显示我未经过身份验证
  5. 正如预期的那样,第二次尝试访问 JS 适配器会导致另一个挑战。

然而,使用 Java 适配器 logout() 似乎没有按预期运行。

  1. 从没有会话开始,尝试访问 Java 适配器,挑战按预期发生,我获取了数据
  2. 我现在可以访问 JS 适配器而无需进一步的挑战,并且 WL.Client.getUserInfo() 调用给出了预期的结果。
  3. WL.Client.logout() 似乎有效,因为 WL.Client.isUserAuthenticated() 现在显示我未经过身份验证
  4. But对 Java 适配器的调用仍然有效,无需进一步的挑战
  5. 对 JS 适配器的调用确实会带来挑战

如果我在浏览器模拟器环境中运行,我可以使用以下命令销毁 OAuth 会话:

 localStorage.removeItem("com.worklight.oauth.idtoken")

问题是:

WL.Client.logout() 方法是否应该破坏 OAuth 会话?如果不是我应该使用什么 API?


对于 OAuth,注销的“工作方式”有所不同。请参阅以下用户文档主题(搜索“logout”):http://www-01.ibm.com/support/knowledgecenter/SSHS8R_7.0.0/com.ibm.worklight.dev.doc/dev/c_oauth_security_model.html?lang=en

登录/注销API:
WLClient 登录/注销 API 使用户能够 通过更新服务器端来登录和注销特定领域 安全状态。然而,在新的基于 OAuth 的安全模型中, 安全凭证也保存在客户端的访问令牌中 边。结果是使用这个API会导致不一致 例如,客户端从某个领域注销的状态 服务器端,但仍然持有该领域的有效令牌 客户端。为了解决这个不一致的问题,建议 重新获取访问令牌,通过使用 getAuthorizationHeaderForScope方法,登录成功后或者 登出。

例如,考虑通过安全检查的客户端 Realm1 和 Realm2,稍后调用 logout(Realm2)。在这种情况下, 客户端上的访问令牌仍然包含安全性 Realm1 和 Realm2 的凭据,客户端可以使用此凭据 访问受保护资源的令牌。刷新token,即 仅获取 Realm1 的令牌,客户端调用 getAuthorizationHeaderForScope 没有注销领域 Realm2。

在 JavaScript 中,等效的调用是:

 WLAuthorizationManager.obtainAuthorizationHeader("SomeRealm")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MobileFirst OAuth 和注销 的相关文章

  • 检查连接的 Worklight 方法

    我正在进行的项目 他们希望在每次调用之前检测活动服务器连接 我试图找出使用它是否更好 WL Device getNetworkInfo isNetworkConnected 或者 WL Client connect 我知道 getNetwo
  • 迁移的 Iphone Build 无法连接到远程服务器

    将 worklight 6 1 项目迁移到 Mobile First 7 1 使用 IBM MobileFirst Platform Studio 7 1 0 00 20160801 2314 通过提供正确的服务器路径和上下文路径 构建应用
  • 使用 Worklight Console 部署应用程序失败:“无法部署应用程序 .wlapp”。:错误

    我正在使用 Worklight 5 0 6 20130311 0918 在 RedHat Linux 上的 WebSphere 应用程序服务器 7 0 0 21 上运行 并且我正在尝试使用 Worklight Console 部署应用程序
  • IBM Worklight 6.1 - “Ecma 错误:TypeError:无法调用对象中的属性

    我正在尝试在 Worklight 适配器示例中运行 Javaworklightadapterproject示例项目 但我在尝试调用过程时遇到错误 errors Ecma Error TypeError Cannot call propert
  • 升级到 Worklight 6.2

    我在升级到 Worklight 6 2 时遇到问题 请找出下面的错误 ERROR transport error 202 bind failed Address already in use ERROR JDWP Transport dt
  • Worklight 6.2 和 iOS7 中本机页面的方向问题

    我正在使用 Worklight Studio 6 2 for iOS 开发一个混合应用程序 应用程序应强制横向 在 iOS 7 中 当我调用本机页面时 即使我已将视图控制器设置为横向 方向也默认为纵向 iOS 8 的方向正确 我尝试使用以下
  • 在 IBM Worklight 推送通知中使用轮询时出现问题

    我正在使用 Android 设备尝试 WL 6 0 推送通知 推送通知工作正常 我也尝试过使用轮询 根据信息中心的文档 对于轮询 我们需要调用另一个过程 并在一定时间间隔后 当我们从该过程获得响应时 方法推送完成 如果我错了 请纠正我 因此
  • MobileFirst Starter - Bluemix 推送通知在生产模式下失败

    我正在构建一个可以通过 Bluemix 接收远程通知的 iOS 应用程序 我在 Xcode 中的应用程序包标识符与 Apple Portal 中的 AppId 相匹配 后者也与 APN 证书相匹配 xxx sandbox p12 和 xxx
  • 如何在中国访问谷歌地图API

    我正在使用 google 地图 api 来获取我的 IBM Mobilefirst 项目中的用户位置 它在除中国之外的所有国家 地区都按预期工作正常 我知道这是因为中国已阻止在其国家 地区访问 google api 是否有任何解决方法我可以
  • IBM Worklight - 构建失败

    我的环境在重新启动 清理 退出 Eclipse 删除本机文件夹后无法构建 我也在寻找以下错误的原因和完美修复 因为任何开发人员不会每次出现此问题时都删除 请帮助 error log windowsphone build failed com
  • IBM Worklight - 连接/重新连接:WL.Client.connect 与 connectOnStartup 与 WL.Client.invokeProcedure

    在我们的项目中 我们试图弄清楚连接到服务器的最佳流程是什么 特别是在处理离线 在线场景等时 现在 对于我们来说 连接到 WL 服务器的所有三个选项似乎都是相似的 无论我们使用什么选项 我们都可以完美地调用我们的适配器过程 并且我们会收到在控
  • 工作灯真实性

    我们正在 Worklight 上开发混合应用程序 我们需要实现应用程序的真实性 我们将 Worklight Enterprise 版本 6 2 0 1 与 IBM 应用程序中心结合使用 但是 当我们在 Android 上启动应用程序时 我们
  • IBM Worklight - 在服务器端包含 JavaScript 库

    我正在使用 IBM Worklight 构建移动应用程序 在适配器中 我需要使用第三方 JavaScript 文件提供的一些功能 我想知道是否可以在服务器上包含这样的文件 如果不是 还有什么替代方案 目前无法在适配器代码中包含外部 Java
  • 如何在 IBM Worklight 中设置 MySQL

    我刚刚了解了IBM Worklight 我想知道如何设置和配置MySQL数据库 我已经设置了Worklight Adapter 但是 我不知道如何用MySQL创建数据库 您应该通过IBM Worklight 入门 http www ibm
  • 如何使用 Worklight 传输媒体文件

    使用 Worklight 适配器传输媒体 照片或电影 的正确方法是什么 我通过适配器发送照片并收到错误 表格太大 超出最大尺寸 我读到我需要通过 Jetty 更改表单大小 但我将部署应用程序的服务器不会是码头 那么我要做什么 shell 呢
  • JSONStore Worklight - 大小限制

    JSONStore 为我们提供了一种与服务器同步数据并跟踪用户在离线状态下所做的更改的好方法 JSONStore 上可以保存的信息量是否有限制 我发现 Webkit 数据库有 5 MB 的限制 而 SQLLite 数据库则没有限制 还想知道
  • 无法对 MobileFirst Console 6.3 使用 HTTPS

    我在 WAS Liberty 8 5 5 4 上使用 MobileFirst 6 3 我可以通过 HTTP 访问控制台 但无法通过 HTTPS 访问控制台 With HTTP With HTTPS 这是server xml 服务器 xml
  • 是否可以将所有适配器配置保存在 IBM MFP 的一个文件中

    我在我的 Maven 项目中使用 JavaScript HttpAdapter 我遇到一种情况 我的客户希望有多个 HttpAdapter 作为adapter xml 文件的一部分 这是我以前没有尝试过的 一个文件中是否可以有多个适配器配置
  • 安装分析后,我的 Worklight 6.2 控制台上没有运行时

    我刚刚安装了Worklight 6 2服务器 使用配置工具部署了一个简单的项目 并且运行正常 然后我按照知识中心的说明安装分析 之后 当我在浏览器中打开 WL 控制台时 我收到 找不到运行时 分析似乎运行良好 我的 war 文件位于 Lib
  • 无法检索用户角色

    我正在尝试从 WL 服务器将角色列表返回到移动客户端设备 在我的 LoginModule 的 createIdentity 方法中 我添加了以下代码 HashMap

随机推荐

  • 单缓冲区;多个插座; Linux 下的单个系统调用

    Linux 是否有任何本机内核工具可以将提供的缓冲区发送 到一组套接字 一种向量 I O 除了套接字句柄而不是缓冲区 目标是减少在某些情况下涉及的 u k 转换的数量 例如 您需要向 n 个客户端广播一些状态更新 这需要迭代每个套接字并发送
  • 从字符串中提取最大数字

    我正在尝试使用 Excel 中的函数从字符串中提取所有数字 第二次 我想提取字符串中包含的最大值 我的字符串看起来像 ATCG 12 5 TTA 2 5 TGC 60 28 期望的输出 60 28 第一次 我尝试用我的函数提取所有数字 但它
  • 突出显示行中特定单元格的值与前一行的值不同的单元格

    我想应用一些条件格式 将一行的每个单元格与前一行的单元格进行比较 如果不同 则该行会突出显示 我使用的是 Excel 2007 这可能吗 如果是这样 有人可以向我提供将其应用于整个数据表的步骤吗 对的 这是可能的 这在以前版本的 Excel
  • 我无法理解这段使用递归产生排列的代码

    def permute2 seq if not seq Shuffle any sequence generator yield seq Empty sequence else for i in range len seq rest seq
  • PHP £ 符号前有奇怪的字符?

    由于某种原因我得到了 76756687 当我在表单上的文本字段中输入 时出现奇怪的字符 正如您所怀疑的 这是一个字符编码问题 页面是否设置为使用 UTF 8 字符集 这种编码确实不会出错 此外 您可能希望在退出时对英镑符号进行实体编码 po
  • Gerrit 中缺少依赖项

    我对 Gerrit 进行了四处更改 每处都取决于之前的更改 当然 第一个除外 我已经放弃了第二和第三并回顾了第一和第四 由于first 不依赖于任何东西 Gerrit 设法自动合并它 现在 第四个 取决于废弃的第三个 是一个真正的问题 格里
  • Bootstrap 下拉菜单出现在其他元素后面 - IE7

    我正在使用 Bootstrap 2 3 1http twitter github io bootstrap index html 所以我使用他们的 下拉菜单 类来创建一些简单的快速使用下拉菜单 但由于某种原因IE7它们出现在我网站上的文本和
  • 使用neo4j客户端在动态查询中返回多值

    按照我问的问题 使用 neo4j 客户端构建动态查询 我得到了关于如何仅使用字符串动态返回值的答案 当我尝试使用语法从失败的查询中返回多个值时 我尝试了以下查询 var resQuery2 WebApiConfig GraphClient
  • a href 链接不可点击

    我正在构建的网站遇到问题 我有一个菜单 其中包含 2 个列表项链接 称为 默认 和 测试 但在 Firefox 中我无法单击它们 在 IE 中 它们有效 我认为这是页面上项目的 z index 问题 但我无法解决它
  • 如何在Python中修改dbf文件

    假设我在根目录下的一些文件夹中有不同数量的dbf文件 d myfolder dbf 文件的内容如下所示 Field1 11110481123 12150480021 我想添加一个字段 例如 Field1 仅包含值的最后 4 位Field2
  • 通过 Gmail 在 .NET 中发送电子邮件

    我没有依赖我的主机发送电子邮件 而是考虑使用我的主机发送电子邮件 Gmail帐户 这些电子邮件是发送给我在节目中演奏的乐队的个性化电子邮件 有可能做到吗 请务必使用System Net Mail 不是已弃用的System Web Mail
  • 如何在猫鼬中填充其他集合的子文档?

    ASchema new mongoose Schema name String B BSchema var BSchema new Schema name String var CSchema new Schema name String
  • 多个错误代码配置web.xml

    我想将所有错误定向到我的 Errorsevlet 而不明确指定所有代码 有什么办法可以这样做吗
  • Scala App Trait 和 main 内部如何工作?

    嗨 我是 Scala 新手 据我所知 在scala中创建入口点有两种方法 一种是用对象定义main方法 另一种是扩展App特征 我想知道如何App特质有效 所以我检查了来源AppTrait 但是里面充满了令人困惑的代码 该代码表示 该应用程
  • 验证 php 表单中的手机号码

    我想验证 10 位数字的手机号码 并在输入数据库时 添加前缀 0
  • 中国 Google 地图应使用哪个网址?

    我想加载谷歌地图 JavaScript API 并且我希望可以从内部访问它中国防火墙 Google 推荐 http maps google cn 但如果我使用它 对于世界其他地区的人来说可能会更慢 据我所知 中国的防火墙并没有阻止http
  • 如何确保某人在按下我网站上的“喜欢”按钮时已成功“喜欢”我的网站?

    我正在开发一个rails 3应用程序 它需要一个facebook 喜欢 按钮并显示点击它并完成喜欢过程 登录facebook等 的人的个人资料图片 由于其他原因 我的应用程序需要知道何时 current user已成功喜欢我的网站 例如 如
  • Perl 中如何检查文件是否存在?

    我有一个相对路径 base path input myMock TGZ myMock TGZ是位于输入文件夹中的文件名 文件名可以更改 但路径始终存储在 base path 我需要检查该文件是否存在于 base path 测试是否某物存在于
  • 隐藏具有相同类的所有 div(第一个除外)

    我有 10 个 属于同一类 div class c1 div div class c1 div div class c1 div div class c1 div div class c1 div div class c1 div div
  • MobileFirst OAuth 和注销

    我有一个访问两个适配器的测试应用程序 由引用领域的 SecurityTest 保护的 JavaScript 适配器 一个 Java 适配器 其方法受与同一领域对应的 OAuth 范围保护 如果我遵循这个顺序 一切都会按预期进行 尝试访问 J