UserManager OIDC 客户端

问题描述

我对 oidc 客户端的 UserManager(此处描述:https://github.com/IdentityModel/oidc-client-js/wiki)的工作方式有疑问。

我将它与“代码”响应类型一起使用。我的问题是:

1/ 文档指出 signinRedirect 返回一个承诺以触发当前窗口到授权端点的重定向。但是这个承诺的“决心”究竟是什么时候被解雇的?是在进行重定向后立即进行吗?如果是这样,则解析不是成功验证的结果...

2/ 这样,这个signinRedirect能不能用在另一个promise中,比如react-admin的authProvider的“登录”?

3/ 我从 OIDC 服务器获得的响应有一个代码查询参数,然后我需要使用它来获取用户信息。 UserManager 是否有管理后续调用 OIDC 服务器获取用户信息所需的方法

感谢您提供的任何解释。

基督徒

解决方法

虽然文档不是很好,但它是一个非常好的库。希望我的经验和以下笔记有用:

  1. 现在通常您使用 await 会导致浏览器被重定向,如 this code of mine

  2. 一般来说,编码模型是值得思考的。 React 的主要作用是围绕视图处理而不是 OAuth。您是否应该像在我的 React Code Sample 中那样为 OAuth 使用纯 Javascript 类?无论您做出什么决定,promise 都应该是可组合的,但有些选项会导致代码比其他选项更简单。

  3. 要处理登录响应,您需要在页面加载过程中调用 userManager.signInRedirectCallback()。我的 blog post 解释了这一点。您不需要自己处理任何低级别的 OAuth 处理。