oidc-client-js 未从 Identity Server 4 正确获取声明

2024-01-12

我有一个 Identity Server 4 的本地实例,我正在尝试遵循本指南 http://docs.identityserver.io/en/release/quickstarts/7_javascript_client.html创建一个 Javascript 客户端。这使用了oidc-客户端-js https://github.com/IdentityModel/oidc-client-js库,我正在使用登录弹出方法,因此我的登录事件处理程序如下所示:

signin(e) {
    e.preventDefault();
    this.oidcUserMgr.signinPopup({state:'some data'}).then(function(user) {
        console.log("signed in", user.profile);
    }).catch(function(err) {
        console.log(err);
    });
} 

身份验证似乎工作正常 - 我被重定向到我的身份服务器,它接受客户端请求,验证我的登录并将我返回到客户端应用程序。然而,文档说user.profile上面代码中的 object 应包含用户声明,但事实并非如此。这是use.profile我回来了:

The subproperty 是刚刚经过身份验证的用户的正确 ID。但我的身份服务器还发布了声明以响应我的客户请求的其他范围(profile and email)所以我应该看到诸如name, preferred_username, emailETC)。我可以在调试我的设备时观察到这些声明的发出IProfileServiceIS4 中的实现。此外,如果我使用access_token与用户对象一起返回以向本地运行的另一个 API(ASP.NET Web API)发出请求我确实在中看到了这些声明this.User.Claims:

那么我怎样才能在我的 Javascript 代码中掌握这些声明呢?


这些用户声明可能会出现在 ID 令牌内。为了使这项工作正常进行,请检查您是否有AlwaysIncludeUserClaimsInIdToken = true在您的 IDP 提供商的客户端配置中,例如

        public static IEnumerable<Client> GetClients()
    {
        return new List<Client>()
        {
            new Client()
            {
                ClientName = "IDP Client",
                ClientId = "client",
                ClientSecrets = { new Secret("secret".Sha256()) },
                AllowedGrantTypes =  GrantTypes.Hybrid,
                RedirectUris = new List<string>()
                {
                    "http://localhost:60811/signin-oidc"
                },
                AllowedScopes =
                {
                    IdentityServerConstants.StandardScopes.OpenId,
                    IdentityServerConstants.StandardScopes.Profile,
                    "myapi"
                },
                AlwaysIncludeUserClaimsInIdToken = true,
                AllowOfflineAccess = true
            },
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

oidc-client-js 未从 Identity Server 4 正确获取声明 的相关文章

  • 如何使用 linq 通过主键组合三个对象列表

    我正在尝试合并 3 个对象列表 我有一个人员列表 地址列表和地址关系列表 我想将这些列表组合成一个按 person id 排序的新列表 将其用作列表视图的数据源 然后能够访问 aspx 页面中的属性 这可能吗 Roughly using S
  • Javascript 作为对象键的函数与块中标记函数之间的语法冲突

    假设您有一个支持两者的浏览器带标签的函数声明 https developer mozilla org en US docs Web JavaScript Reference Statements label Labeled function
  • 哈希密码如何解密? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在我的网站中使用盐技术的 SHA1 算法对密码进行哈希处理 有什么办法可以解密密码并恢复原来的密码吗 Hashing不加密 解密 当我们
  • 检查用户设备的 GPS 是否开启

    我正在使用 jQuery Mobile 和 PHP 开发一个应用程序 我没有使用 Phonegap 或其他框架 我需要找到用户的geolocation 如果用户设备的 GPS 关闭 那么我无法获取位置 现在我需要查找用户设备的 GPS 是否
  • 将 aspx 文件加载到 xmldocument 中

    我希望能够将 aspx 页面加载到 XmlDocument 变量中 我怎么做 这是我尝试过的 它期望 xml 文件而不是 aspx 页面 有没有办法将aspx页面即时转换为xml文档并加载它 谢谢 string filePath C Web
  • 如何从网站的 .NET 安装程序中排除文件夹?

    我们的网站有一个安装程序 效果很好 我在创建安装程序时排除了 web config 和其他一些文件 但是我似乎无法排除文件夹 这可能吗 我已使用 NET 内置 Web 安装项目创建了安装程序 该项目可在新项目对话框中的 Visual Stu
  • 多线程 Web 应用程序

    我知道有很多情况都是在应用程序中使用多线程的好例子 但是什么时候最好在 net Web 应用程序中使用多线程 Web 应用程序几乎肯定已经由托管环境 IIS 等 实现多线程化 如果您的页面受 CPU 限制 并且想要使用多个核心 那么可以说多
  • 使用javascript以编程方式触发iOS safari中的复制菜单?

    我正在尝试实现一种用户友好的方式 将一些文本从文本输入字段复制到 iOS Safari 上的剪贴板 我知道无法在这个平台上以编程方式完成此操作 但我希望能够尽可能地指导用户体验 在 iOS Safari 上 当用户手动突出显示某些文本时 会
  • 更新面板工作速度非常慢

    我正在编写一个用户可以注册的应用程序 注册时 可以选择多个选项 并根据这些注册字段可见或不可见以及是否必需 我想出了一个想法 所有字段都将位于 updatePanel 中 当用户更改注册选项时 我将在服务器端设置这些字段的可见性 它可以工作
  • jQuery:将文本区域滚动到给定位置

    我有一个包含很多文本的文本区域
  • Firefox Addon 中的 JQuery 导致多个警告

    我在 Firefox 插件中使用 jquery 但我不断收到大量警告消息 如下所示 anonymous function does not always return a value System JS WARNING resource g
  • Chrome --app 相当于 Firefox\IE

    我有一个网络应用程序 客户要求单击不同按钮时更改浏览器窗口大小 我发现在那link https stackoverflow com questions 13436855 launch google chrome from the comma
  • 如何从 html 页面 [javascript] 调用 Web 服务方法而不刷新页面

    我有一个webservice这将返回一个值 我的要求是 我需要调用它webservice从一个index html页面 该页面有一个 html 提交按钮 在该按钮上单击我正在呼叫JavaScript 从那里我想调用网络方法 我怎样才能做到这
  • node.js 模块/导出系统:是否可以将模块导出为函数

    我想在 Dispatch js 中做这样的事情 function handle msg exports handle 这在调用index js中 var dispatch require Dispatch dispatch data 有任何
  • ASP.NET - 在表示层中显示业务层错误

    目前 在我正在开发的 ASP NET 应用程序中 基本验证 即必填字段 是在表示层中使用验证器和 ValidationSummary 完成的 这对我来说非常有用 因为 ValidationSummary 将显示多个错误消息 假设多个验证器设
  • 如何解决“消息端口在收到响应之前已关闭”的问题。在 JavaScript 中的 window.location.reload() 之后

    我遇到了 javascript 问题 从 chrome v73 0 3683 86 开始 每当我在 window location reload 函数之后运行 javascript 代码时 它总是给我错误 Unchecked runtime
  • onPress 方法中箭头函数与普通函数的行为

    正在学习 Native React 并学习更多关于 javascript 的知识 所以我仍然不明白它的行为的很多事情 我使用 TouchableOpacity 及其 onPress 属性创建了一个按钮组件 为了让它工作 我必须发送我想要执行
  • jQuery Mobile + Admob:轮换?

    我使用 jQuery Mobile 框架创建了一个移动应用程序 所有页面都在index php中加载 使用 div 在每个页面的页脚中 我添加了Admob代码 div div div
  • 将 html 文本框的值分配给 div 的标题

    line 1
  • 正则表达式仅允许特定数字

    我正在寻找一个只允许输入特定数字的正则表达式 例如2 4 5 6 10 18 我尝试过类似的东西 2 4 5 6 10 18 我输入的任何内容都无法通过正则表达式 然后计算机用手指着我并大笑 我哪里出错了 单引号是不必要的 您正在寻找的正则

随机推荐

  • DataGridView使用虚拟模式实时显示数据表

    我有一个 DataGridView 它将显示数据库中的记录 日志条目 一次可以存在的记录量非常大 我想使用 DataGridView 的虚拟模式功能来显示数据页 并最大限度地减少给定时间必须通过网络传输的数据量 轮询数据是不可能的 一次将有
  • 使用 zxing 创建彩色二维码

    我正在使用谷歌开源java zxing Creator http code google com p zxing http code google com p zxing 创建二维码 我已准备就绪并正在工作 我正在使用 Coldfusion
  • 在类内初始化固定大小的常量数组

    考虑下面的类 class A const int arr 2 public A 是否可以初始化arr从构造函数初始值设定项列表或以除声明它的行之外的任何其他方式 即const int arr 2 1 2 请注意 我对与 C 98 一起使用的
  • 错误 400 删除记录的请求 YII 无效

    我试图在 Yii 中删除一条记录 这会抛出错误 400 请不要再次重复此请求 它正在检查后变量 我的控制器文件有 if Yii app gt request gt isPostRequest 当我回显我的 post 变量时 它是空白的 而
  • 预处理器之后的 CDT IASTNode getRawSignature

    在CDT核心插件中 有一个方法getRawSignature接口的IASTNode被描述为 Returns the raw signature of the IASTNode before it is processed by the pr
  • 扩展淘汰赛可观察数组

    我想向 ko observableArray 添加一些类似 ArrayCollection 的功能 IE removeItemAt index 调度项目删除事件 addItem item 调度项目添加事件 ETC 我注意到在大多数 ko 示
  • 更改反应本机中反应导航选项卡的底栏容器颜色

    我正在尝试将边框半径添加到底部栏 但是这样 我想将容器颜色从默认更改为紫色 我怎样才能做到这一点 到目前为止我做了什么 我想要的是 Code tabBarOptions activeTintColor colors primary inac
  • Google Maps API v3 中的remove_at 事件何时触发?

    我正在研究 google map api v3 想要添加编辑折线的功能 根据谷歌文档 当折线处于编辑模式时会触发 3 个事件 插入位置 set at 删除 at 我知道前两个事件何时被触发 并且也能够获得编辑后的坐标 我也想删除一个节点但不
  • 为什么我应该在 Clojure 中使用“apply”?

    这是 Rich Hickey 在一篇博客文章中所说的 但我不明白使用 apply 的动机 请帮忙 Clojure 和 CL 之间的一个很大区别是 Clojure 是 Lisp 1 因此不需要 funcall 并且 apply 仅用于将函数应
  • 安卓权限错误

    我创建了一个启用蓝牙并发现其他设备的应用程序 在清单中我有以下内容
  • 如何在java/Android中的选项卡之间使用intent?

    我需要知道如何处理选项卡之间的意图 例如 我有一个带有两个选项卡的选项卡活动 首先内容是文本视图 另一种是地图视图 当我单击该文本视图时 它会重定向到 tab2 它可以通过 setCurrentTab 1 或 setCurrentTabBy
  • SKAction playSoundFileNamed 在 500 mp3 时失败

    在我的应用程序中 我需要使用很多不同的短mp3 大约500个项目一一 所以我用SKAction playSoundFileNamed 在大约 200 声声音后 它崩溃并显示 无法加载资源 无法加载资源 s234 mp3 内存升至70mb 如
  • 在Three.JS中通过鼠标点击选择Collada对象

    我需要通过鼠标单击在 Three JS 中选择 Collada 对象 我知道我可以根据对象的 id 选择对象 并且我看到了一些用户可以与几何定义的对象交互的示例 here http mrdoob github com three js ex
  • 如何在 Flutter 中左对齐 OutlineButton 图标

    如何左对齐OutlineButton颤振中的图标 Icon可以按如下方式添加 但图标和文本都在按钮中居中对齐 有没有办法将图标向左对齐 文本向中心对齐 return new OutlineButton icon onPressed onPr
  • Java“常量字符串太长”编译错误。仅在使用 Ant 时发生,在使用 Eclipse 时不会发生

    我在一个类中有一些非常长的字符串用于初始化用户信息 当我在 Eclipse 中编译时 没有收到任何错误或警告 并且生成的 jar 运行良好 最近 我决定创建一个 ant 构建文件来使用 每当我用 ant 编译同一个类时 我都会收到 cons
  • jQuery 验证插件 - 如何不显示“此字段为必填”标签

    如何关闭所有输入文本框的 此字段为必填 的显示 我宁愿不必做这样的事情 myForm validate messages myField1 required myField2 required myField3 required 您只需将默
  • 如何指定从中获取 EJB 的服务器?

    在 java EE 中 从远程服务器获取 EJB 的方法是在 JNDI 中查找 该规范定义了给定 bean 类型的 JNDI 名称 然而 这似乎仅适用于您想从本地计算机上获取信息的情况 我想像大多数用户一样从远程服务器上获取 bean 如何
  • 如何获得最爱的星星

    我想添加一个最喜欢的星星 就像 Android 上的联系人列表中的星星一样 我们有什么办法可以获得那颗星星 还是我必须自己写 除了选项菜单图标之外 我似乎找不到任何来自 android 的标准 GUI 元素 还有其他我没找到的吗 看看乔治
  • Pyserial:无法配置端口:(5,'输入/输出错误)

    在过去的两天里 我一直在尝试运行以下两行Python代码 但没有取得多大成功 import serial ser serial Serial 0 每次运行它时 我都会收到以下错误 Traceback most recent call las
  • oidc-client-js 未从 Identity Server 4 正确获取声明

    我有一个 Identity Server 4 的本地实例 我正在尝试遵循本指南 http docs identityserver io en release quickstarts 7 javascript client html创建一个