2023-02-15 317
我正在尝试在我的注册页面中实现第三方Auth,但是我无法与IdentityServer4一起使用.由于OIDC客户端正在启动登录请求,因此我可以在登录页面中使用它.但是,OIDC客户端不知道对我的注册页面的请求,因此当我将验证令发送回去时,它不识别状态并抛出例外:”在存储中找到的匹配状态未找到”.
我知道IdentityServer4不正式支持用户注册.我已经使用ASP.NET身份进行了注册,但是能够在我的注册页面上添加[第三方提供商]的注册会很高兴.有什么办法可以解决这个问题?我可以手动设置州并将注册请求发送给我的身份提供者吗?这样,如果用户选择登录,则OIDC客户端将具有有效的状态.还有其他方法吗?谢谢.
我终于找到了解决此问题的解决方案.正如我在答案中所述,OIDC客户端在本地存储中维护状态信息,以便它可以验证它从预期的服务器中恢复了响应.您可以通过生成安全的随机字符串并将其保存在LocalStorage中来模拟此内容.在将请求发送到您的身份服务器之前注册新用户之前,请执行此操作.代码看起来像这样:
const nonce = this.generateUniqueString();
const state = this.generateUniqueString();
const date = new Date();
const query = `${otherQueryOptions}&state=${state}&nonce=${nonce}`;
const authSessionData = {
authority: auth_server_url,
client_id: client_id,
created: date.getTime(),
id: state,
nonce: nonce,
redirect_uri: `your/return.url`
}
// You must prefix the key with 'oidc'
localStorage.setItem(`oidc.${authSessionData.id}`, JSON.stringify(authSessionData));
const registrationPath = `myServerRegistrationPath?${query}`
navigateToPage(registrationPath);
解决了我的问题.
以上所述是小编给大家介绍的用IdentityServer4和Angular 6-'在存储中没有找到匹配的状态'整合第三方从我的注册页中登录。,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/33752.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态