在我们的组织中,我们使用自己的自定义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-js Google: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
答案 0 :(得分:2)
通常,我建议使用此库-这可能是那里最受欢迎的选项: https://github.com/IdentityModel/oidc-client-js
如果没有发现端点,则可以根据需要显式设置端点。但是,这在某种程度上取决于您的OAuth2提供程序功能。
另请参阅以下示例: https://github.com/skoruba/react-oidc-client-js
如果遇到困难,请发回邮件-我可能可以提供帮助..