angular-oauth2-oidc中redirect_uri是否必须设置为/index.html?
关于angular-oauth2-oidc PKCE流程redirect_uri配置的问题解答
问题1:带/index.html的配置是否为安全强制要求?
该配置不是安全层面的必须要求。OAuth2协议对redirect_uri的安全核心要求只有两点:
- 必须和授权服务端预登记的地址完全匹配,不允许通配符、路径模糊匹配等存在安全风险的配置
- 不能包含可被第三方篡改的动态参数或路径片段
是否携带/index.html本身不会对安全性产生影响,只要实际配置的地址和授权服务端预注册的地址完全一致即可。
问题2:带/index.html出现404、不带就正常的原因,是否必须搭配/index.html使用?
redirect_uri不需要必须搭配/index.html使用,文档示例的写法是针对特定部署场景的参考,不是通用强制规则:
- 示例中加
/index.html是为了兼容没有配置SPA(单页应用)路由回退规则的部署环境,这类环境下如果直接重定向到根路径的子路由,会因为web服务器找不到对应静态资源返回404,直接指定到index.html的绝对路径可以保证应用能被正常加载。 - 你当前的配置属于正确情况,出现带
/index.html404的原因是你的部署环境已经配置了Angular SPA的路由回退规则:你使用了PathLocationStrategy(无#的干净路由模式),且web服务器(Nginx/Apache等)已经配置了所有请求默认回退到根目录index.html的规则,此时直接用window.location.origin作为redirect_uri,授权服务重定向后web服务器会自动转发请求到Angular应用入口,不会出现404。
只要你当前配置的window.location.origin已经在授权服务端完成预注册,该配置就是完全合规可用的。
内容的提问来源于stack exchange,提问作者user3629892
相关产品推荐
相关产品推荐

