晚上好,我正在react中开发一个web应用程序,我想使用oidc-client-js进行身份验证。但是,当我运行下面的代码时:
const userManager = new UserManager({
authority: "https://accounts.google.com/.well-known/openid-configuration",
client_id: "*myclientid*",
redirect_uri: "http://localhost:3000/projects",
});
const loginUser = (_) => {
userManager
.signinRedirectCallback()
.then((user) => {
alert(user);
})
.catch((error) => {
alert(error);
});
};我得到的错误是:响应中没有状态。
在对这个错误进行了一些搜索之后,我已经尝试将response_mode:'query‘放在UserManager对象上,但是没有成功。
提前谢谢。
发布于 2020-07-23 10:44:58
我假设这段代码是用来处理从idp收到的响应(令牌)的,对吧?
如果有,你有没有检查登录请求?作为请求的一部分,客户端需要发送状态(在url中),并且idp将相同的状态返回给客户端,以便客户端验证它正在接收对客户端发起的请求的响应(如握手)。
无论何时发起登录请求,都要传入状态并验证状态值(某个随机的15位uuid)是否与authroize请求一起传递。
userManager.signinRedirect({ state: { bar: 15 } });
https://stackoverflow.com/questions/62687897
复制相似问题