如何让Amazon SP-API OAuth直接跳转至Redirect URI,跳过Login URI?
解决Amazon SP-API公开应用OAuth流程跳过Login URI直接跳转Redirect URI的问题
核心思路
Amazon SP-API公开应用强制要求填写OAuth Login URI,但我们可以通过将该字段设置为一个无感知跳转端点,让用户在点击按钮后直接重定向到实际的OAuth Redirect URI,从而跳过额外的登录步骤。
具体实现步骤
创建临时跳转端点
在你的应用服务器上搭建一个简单的HTTP端点(比如/amazon-login-forward),这个端点的唯一功能就是接收亚马逊传递的所有授权参数,直接重定向到你配置的OAuth Redirect URI。
示例代码(以Python/Flask为例):from flask import request, redirect import os @app.route('/amazon-login-forward') def amazon_login_forward(): # 拼接Redirect URI和所有查询参数 redirect_uri = os.environ.get('AMAZON_REDIRECT_URI') query_string = request.query_string.decode('utf-8') full_redirect_url = f"{redirect_uri}?{query_string}" if query_string else redirect_uri return redirect(full_redirect_url)配置Amazon开发者后台字段
- 将
OAuth Login URI设置为你刚创建的跳转端点(比如https://your-app-domain.com/amazon-login-forward) - 将
OAuth Redirect URI设置为你实际处理授权回调的业务端点(比如https://your-app-domain.com/amazon-auth-callback)
- 将
验证流程
用户完成亚马逊授权并点击「Sign/Up Login to App」按钮后,会先跳转到上述跳转端点,该端点会立即将用户重定向到OAuth Redirect URI,同时完整携带亚马逊传递的code、state等关键授权参数,你的应用即可正常完成后续的令牌获取逻辑。
关键注意事项
- 跳转端点的域名必须与你在Amazon后台备案的授权域名完全一致,否则会被亚马逊拦截
- 务必完整保留所有查询参数,缺失参数会导致授权流程失败
- 跳转端点不要添加任何用户交互或页面渲染逻辑,保持纯重定向的无感知体验
内容的提问来源于stack exchange,提问作者Sankar Chinnakotla
相关产品推荐
相关产品推荐

