根据Flask中的当前网址动态更改网址

时间:2020-08-21 12:25:07

标签: python flask

我目前正在建立我自己的第一个项目,这是一个使用Flask与Spotify API交互的Web应用程序。 Spotify用户的授权是通过在我的flask应用程序中使用OAuth2和回调路由来完成的。直到昨天,我一直都在localhost上进行开发和测试,但是现在我已经在Heroku上部署了该应用程序,并在开发和生产环境之间进行了划分。这也意味着我必须在Spotify仪表板上将 2个不同的重定向URI 列入白名单。

问题在于我似乎无法弄清楚如何在我的Flask应用中动态更改重定向URI 。 当我将更改推送到暂存环境时,我希望Flask应用识别当前正在使用的URL并相应地更改重定向URI 。 我尝试使用 request.url request.base_url ,但似乎都无法满足我的需求。

我目前有:

# ------------- Server-side Parameters -------------
#CLIENT_SIDE_URL = "https://my-spotify-statistics.herokuapp.com"
#CLIENT_SIDE_URL = "https://intense-sea-06332.herokuapp.com"
CLIENT_SIDE_URL = request.url
REDIRECT_URI = "{}/callback/q".format(CLIENT_SIDE_URL)

以某种方式可以完全在Flask中执行此操作吗?还是与其他Git分支合作是解决此问题的首选方法?

谢谢!

1 个答案:

答案 0 :(得分:0)

尝试在os环境变量中设置CLIENT_SIDE_URL(对于您的localhost和heroku主机,它应该有所不同),并在代码中从env读取它,例如:

REDIRECT_URI = os.getenv("REDIRECT_URI") 

或者您可以尝试使用request.url_root建立重定向

相关问题