如何为React单页应用程序使用PKCE实现OAuth2授权代码授予?

问题描述 投票:1回答:1

在我们的组织中,我们使用自己的自定义Oauth2提供程序(由于它不是OIDC提供程序,因此没有“ .well / known / OpenID-configuration”发现端点)。我们有一个React 单页应用程序(SPA),它充当Oauth2客户端,该SPA使用自定义OAuth2提供程序的OAuth2端点(授权,代币和吊销)来授权最终用户。

对于React SPA,是否有任何库/ SDK可用于实现自定义OAuth2提供程序的OAuth2授权代码授予(带有PKCE)]?..

我们可以为知名提供商(例如Google,Facebook,Auth0等)找到React OAuth库。但是我们找不到用于自定义OAuth提供程序的任何通用React OAuth库。Auth0 React脚本:https://auth0.com/docs/libraries/auth0-spa-jsGoogle:https://www.npmjs.com/package/react-google-login脸书:https://www.npmjs.com/package/react-facebook-login

我是否可以将本机(应用程序)React库用于SPA

?我可以使用此本机反应库https://github.com/FormidableLabs/react-native-app-auth吗?它同时支持OAuth2和OIDC提供程序。我们的自定义OAuth提供程序没有“ .well-known / OpenID-configuration”发现终结点。因此,我们将在配置中指定OAuth端点
const config = {
  clientId: '<your-client-id>',
  clientSecret: '<your-client-secret>',
  redirectUrl: ‘redirectURL', 
  scopes: ['email:accounts:read'], /
  serviceConfiguration: {
    authorizationEndpoint: 'https://OAuthProvider/oauth/authorize',
    tokenEndpoint: 'https://OAuthProvider/oauth/token',
    revocationEndpoint: 'https://OAuthProvider/oauth/revoke',
  },
}

我尝试使用下面的库,但是它仅与OIDC提供程序一起使用,因为它使用OIDC发现“ .well-known / OpenID-configuration”来查找OIDC端点。但是我们的自定义OAuth提供程序没有发现渠道。

https://github.com/googlesamples/appauth-js-electron-sample

起初,我们考虑使用隐式流,但不建议这样做。 https://developer.okta.com/blog/2019/05/01/is-the-oauth-implicit-flow-dead

在我们的组织中,我们使用自己的自定义Oauth2提供程序(由于它不是OIDC提供程序,因此没有“ .well-known / OpenID-configuration”发现终结点)。我们有一个React单页...

reactjs oauth oauth-2.0 single-page-application openid-connect
1个回答
1
投票

通常,我推荐这个库-这可能是那里最受欢迎的选项:https://github.com/IdentityModel/oidc-client-js

© www.soinside.com 2019 - 2024. All rights reserved.