Redirect URI
可以先理解为:授权完成后将结果送回受信任客户端的回程地址
它像快递单上事先核验过的回寄地址:授权中心办完手续后,只把结果送回应用提前登记的地方。如果请求中的地址与登记值不一样,流程应停下,而不是把授权结果送往陌生站点。
关键结构图
客户端发起授权,授权服务核对 Redirect URI,匹配后才将浏览器导回客户端。
What
Redirect URI 是 OAuth 授权完成后,将结果送回受信任客户端的回程地址。
Redirect URI 是 OAuth 客户端预先登记的接收点。授权服务器完成用户交互后,将浏览器和授权结果导回这个地址。它保护的是「授权结果被送到哪里」,不负责决定用户是谁或应用能做什么。即使 Redirect URI 正确,流程仍需要 scope、state 和现代安全机制的配合。
StructureRedirect URI = 预先登记 + 严格匹配 + 安全回传
When
配置 Google、GitHub 或其他 OAuth provider 时,只要流程需要从授权页回到你的产品,就必须明确 Redirect URI。
How
先在 OAuth application 中登记允许的回调地址,发起授权时携带匹配地址,授权服务只向验证通过的地址返回结果。
Examples
本地开发和正式站点往往有不同的 Redirect URI,两者都需要明确登记,不能用一个随意通配地址代替。
如果攻击者能把 Redirect URI 换成自己的站点,授权码就可能被送给攻击者;因此严格匹配是安全边界。
来源
类型:技术标准
事实线:RFC 6749 要求授权服务器将 redirect_uri 与已登记地址匹配,不匹配时不应自动重定向。
依据:IETF RFC 6749 第 3.1.2 节和第 10.6 节。
边界:它不代替 scope、state、PKCE 或客户端校验。
常见误读:页面能打开就能做回调地址;实际上它需要与授权服务中的登记值匹配。