Notion OAuth集成问题:注册重定向URI查询参数被忽略
Notion OAuth重定向URI丢失查询参数问题的排查方案
问题概述
集成Notion OAuth流程时,注册的重定向URI为http://localhost:3000/integration?type=NOTION_DATABASE,但授权完成后实际重定向到http://localhost:3000/integration,type查询参数丢失,仅返回code和state参数。这不符合RFC 6749第3.1.2节(允许重定向URI包含查询参数,不含片段即可)及Notion开发者指南的要求。
排查与解决建议
精确匹配注册与请求的重定向URI
Notion OAuth对重定向URI的匹配要求严格,需确保:- Notion开发者后台注册的URI与授权请求中传递的
redirect_uri参数完全一致,包括查询参数的键、值及顺序,不能有空格、拼写错误或格式差异。 - 令牌请求中使用的
redirect_uri也必须与注册值完全一致,这是Notion文档明确要求的。
- Notion开发者后台注册的URI与授权请求中传递的
改用
state参数传递自定义信息
如果Notion实际实现中存在对预定义查询参数的限制,可将type=NOTION_DATABASE放入state参数中传递。OAuth规范中state用于携带自定义状态,授权后会原样返回,可在重定向回调中解析该参数获取所需值。提交开发者支持工单
若上述步骤均验证无误但问题仍存在,说明可能是Notion OAuth服务的实现bug。建议向Notion开发者支持提交工单,附上以下信息:- 注册的重定向URI截图
- 授权请求的完整参数(脱敏后)
- 重定向返回的完整URL
- 引用RFC 6749第3.1.2节及Notion开发者指南的相关说明,明确问题不符合规范的点。
内容的提问来源于stack exchange,提问作者Idan
相关产品推荐
相关产品推荐

