OIDC刚起步-过去我已经做了一些工作,但无论如何我都不会称自己为专家。
我正在尝试使用oidc-client-js和redux-oidc库(以及redux-oidc-example示例)在React应用中使用OIDC
我收到此错误:
错误:在存储中找不到匹配状态 在评估时(oidc-client.min.js:1011)
现在,我一直在寻找解决方案,这是我所遇到的最接近的问题,但是在这里我仍然找不到任何能清楚说明问题的东西:
https://github.com/IdentityModel/oidc-client-js/issues/648
这是我的回调函数:
const successCallback = (user) => {
this.props.dispatch(push("/settings"))
};
class CallbackPage extends React.Component {
render() {
return (
<CallbackComponent
userManager={userManager}
successCallback={successCallback}
errorCallback={error => {
//this.props.dispatch(push("/chat"));
console.error(error);
}}
>
<div>Redirecting TEST...</div>
</CallbackComponent>
);
}
}
export default connect()(CallbackPage);
在错误回调中注释掉props.dispatch之前,这是一个永无止境的循环。现在,它随我在错误回调中输入的内容一起冻结在回调页面上。
我不会放置完整的userManager设置,因为这似乎太过分了,但这是一些主要亮点:
{
"authority": "https://subdomain.appname.com/auth/realms/appname/",
"client_id": "appname-app",
"redirect_uri": "http://localhost:3001/callback",
"response_type": "code",
"extraQueryParams": {"kc_idp_hint": "google"},
"loadUserInfo": true,
"scope": ["openid", "profile", "email"]
}
我不确定还有什么对故障排除人员有帮助的-如果需要,我可以提供store.js信息或主应用程序index.js。
答案 0 :(得分:0)
尝试一下。
class CallbackPage extends React.Component {
successCallback = (user) => {
this.props.dispatch(push("/settings"))
};
render() {
return (
<CallbackComponent
userManager={userManager}
successCallback={this.successCallback}
errorCallback={error => {
//this.props.dispatch(push("/chat"));
console.error(error);
}}
>
<div>Redirecting TEST...</div>
</CallbackComponent>
);
}
}
export default connect()(CallbackPage);
答案 1 :(得分:0)
用户meneger的范围参数应该是空格分隔的字符串而不是数组。
示例:'openid profile email'