我有一个Express服务器提供的react应用程序,我正在尝试使用其React Sample与Okta身份验证集成(似乎使用了create react app)。应用于该演示时,我的登录信息有效。但是,将其与我的实际应用程序集成后,我被重定向到http://localhost:8080/implicit/callback#id_token={long hash}
并收到一个Cannot GET /implicit/callback
错误。
相关的React代码:
const oktaConfig = {
oidc: {
clientId: '{my client ID}',
issuer: 'https://dev-{my dev id}.oktapreview.com/oauth2/default',
redirectUri: 'http://localhost:8080/implicit/callback',
scope: 'openid profile email'
}
}
const Root = () => (
<Provider store={store}>
<Router>
<Security
issuer={oktaConfig.oidc.issuer}
client_id={oktaConfig.oidc.clientId}
redirect_uri={oktaConfig.oidc.redirectUri}
>
<Route path="/" exact component={Home} />
<Route path="/implicit/callback" component={ImplicitCallback} />
<SecureRoute path="/myApp" component={myApp} />
</Security>
</Router>
</Provider>
)
我必须将React-Router集成到我的应用程序中才能使用Okta HOC。我不确定这是否是在使用React路由器和快速路由之间的分歧,就像之前我只是在/
使用ejs渲染HTML shell并为{{1}使用express.Router
}}端点。
在Okta GUI中,我有:
/api
我也尝试过,但最终在快递服务器顶部删除了几行,例如
+----------------------+-----------------------------------------+
| Login redirect URIs | http://localhost:8080/implicit/callback |
+----------------------+-----------------------------------------+
| Logout redirect URIs | |
+----------------------+-----------------------------------------+
| Login initiated by | App Only |
+----------------------+-----------------------------------------+
| Initiate login URI | http://localhost:8080/implicit/callback |
+----------------------+-----------------------------------------+
只是为了确保通过该路由的任何内容都不会被我可能设置的任何路由所阻止。但是,这只是写日志,然后以相同的方式失败而已。
我是否缺少某些配置或出了错?