不使用 oidc-client-js 实现 OpenID Connect

Implement OpenID Connect without oidc-client-js

我正忙于使用 Identity Server 4 将新的 React 前端与 .net Core API 集成。

我们使用的流类型是资源所有者密码凭据。

我不想使用 oidc-client-js 有两个原因:

  1. 它是 433 KB
  2. 不支持我们的流量类型

目前我可以获取发现文档并使用 token_endpoint 登录。我登录后的return包含:access_token、expires_in和token_type,但没有session_state。

我目前正在尝试复制 CheckSessionIFrame,如 oidc-client-js 存储库中所示。
它由回调、client_id、url & 间隔构造,并通过传入 session_state.

开始

我的问题是我不知道如何从 Identity Server 4 获取 session_state。

  1. 对于整体情况的任何建议,我将不胜感激。
  2. 你能告诉我如何获得 session_state 吗?

非常感谢
查尔斯

资源所有者流程不允许会话,因为它是一个无浏览器流程,很像客户端凭据流程。换句话说,IdentityServer4 无法为您的会话发出 cookie。

oidc-js 可能不支持密码授予,因为它是一个简单的 restful 调用,没有什么太复杂的。

如果您想要检查会话,您将需要使用基于人机交互的流程,例如隐式流程。