Angular-oauth2-oidc重定向URI自动添加iss与client_id参数问题咨询
关于angular-oauth2-oidc自动追加iss/client_id参数的问题解答
1. 参数追加是否符合预期?
是,这是angular-oauth2-oidc v14.0.1版本的预期行为。库在重定向URI后自动添加iss和client_id参数,核心作用是在回调阶段帮助库精准匹配对应的OAuth配置(比如当应用同时配置了多个身份提供商或客户端时),确保后续的授权码交换、token获取等流程能关联到正确的配置项。
2. 能否像清除code/state参数那样清除这两个参数?
当前v14.0.1版本没有提供直接的配置选项一键移除iss和client_id参数,但可以通过手动方式清理,且不会影响库的正常运行(这两个参数仅在回调初始化阶段生效):
方式一:利用登录回调钩子清理
在调用tryLogin()或loadDiscoveryDocumentAndLogin()完成后,手动修改浏览器URL移除参数:
this.oauthService.tryLogin().then(() => { const currentUrl = new URL(window.location.href); const hasTargetParams = currentUrl.searchParams.has('iss') || currentUrl.searchParams.has('client_id'); if (hasTargetParams) { currentUrl.searchParams.delete('iss'); currentUrl.searchParams.delete('client_id'); // 使用replaceState修改URL,避免页面刷新 window.history.replaceState({}, document.title, currentUrl.toString()); } });
方式二:在回调组件中初始化清理
如果使用自定义的回调页面组件,可以在组件的ngOnInit钩子中执行上述URL清理逻辑:
ngOnInit(): void { const url = new URL(window.location.href); url.searchParams.delete('iss'); url.searchParams.delete('client_id'); window.history.replaceState({}, document.title, url.toString()); // 后续执行OAuth登录处理逻辑 this.oauthService.tryLogin(); }
内容的提问来源于stack exchange,提问作者TheodoreTsg
相关产品推荐
相关产品推荐

