OAuth 2(Pinterest)回调URL带固定查询参数时拼接错误如何解决?
可行解决方案
服务端网关/反向代理层URL重写(最推荐,无业务侵入)
在Nginx、Apache等反向代理或API网关层新增重写规则,匹配请求路径中出现的第二个?符号,直接替换为&后做内部转发即可,整个过程对业务逻辑和Pinterest侧配置都无感知。
示例Nginx配置参考:if ($request_uri ~ ^([^?]*\?[^?]*)\?(.*)$ ) { rewrite ^ $1&$2 last; }新增无参数中转回调地址
到Pinterest开发者后台新增一个不带任何查询参数的回调地址,例如https://www.my-site.com/pinterest-oauth-callback,请求到该地址时先正常提取code等OAuth返回参数,再拼接上你的固定fixed=value参数,自行跳转到原业务处理接口即可。业务层参数兼容适配(最快临时修复)
如果暂时无法调整代理配置和回调地址,可以直接在现有业务逻辑的参数解析前增加兼容判断:如果解析到的fixed参数值包含?字符,就手动拆分该值,把?之前的部分作为fixed的真实取值,?之后的部分按查询参数规则拆分出code等参数补充到请求参数中即可。
内容的提问来源于stack exchange,提问作者oneCoderToRuleThemAll
相关产品推荐
相关产品推荐

