在 react-oidc-context/oidc-react 中允许 CORS

Allow CORS in react-oidc-context/oidc-react

我想使用自定义 OAuth 身份验证提供程序将 OAuth 添加到我的 React 应用程序。我试过使用 react-oidc-context and oidc-react, but with both libraries, I get blocked by CORS policy. I cannot figure out how I add the Access-Control-Allow-Origin header since the libraries request the openid-configuration-file from the auth provider under the hood. I can pass metadata or UserManager to the AuthProvider, which, as the docs 说,"Provide metadata when authority server does not allow CORS on the metadata endpoint",但我不知道如何使用 them/what 值来传递,因为没有示例。

有什么方法可以添加 CORS-header 或其他制作 OIDC-call 的方法吗?

注册 React 客户端时需要在授权服务器 (AS) 中配置 CORS。现在几乎所有的 AS 都支持 CORS。您无法通过 React 代码使其工作。

库设置

我的code example shows an SPA config, and an alternative to downloading metadata is to provide a metadata JSON object with endpoint locations:

authorize_endpoint
end_session_endpoint
token_endpoint
jwks_endpoint

但是,当库调用最后两个端点时,它仍然需要进行跨源请求。

后端代理

如果 AS 绝对不支持 CORS,那么一种选择是通过您自己的后端组件对最后两个端点进行双跳调用。不过,这对于任何最新的 AS 都不是必需的。