首页 > 解决方案 > 如何在 Flask 中访问重定向 URI 中的参数?

问题描述

我正在 Flask 中创建一个 JMML(“加入我的邮件列表”)小部件,该小部件将数据提交到电子邮件营销平台,并且该平台遵循 OAuth2 流程。基本流程是:

  1. 我使用基本 API URL、API 密钥和重定向 URI 创建访问 URL
  2. 程序访问此 URL,程序的用户被重定向到营销平台以登录并授予访问权限。
  3. 营销平台执行另一个重定向回我提供的重定向 URI。URI 附加了访问令牌,我需要在 JMML 的应用程序 POST 请求中提供该令牌。以下是返回的 URI 的示例:

http://localhost:5000/redirect_url#access_token=2C1zxo3O0J1yo5Odolypuo9DSmcI

这是我遇到的问题:我不知道如何以编程方式将最终重定向 url/uri 用作 Python 中的变量。我可以让用户将其复制/粘贴到字段中,但必须有更好的方法. 老实说,我什至不知道这样的重定向重定向的术语。

这很可悲,我迷路了,但这是我到目前为止所拥有的:

@app.route('/redirect_url')
def redirect_url():
    # I have no idea how to actaully get the parameter out of the redirect url.
    pass

我查看了电子邮件营销公司 API 的 API 文档,但它们只提供了在 Ruby 和 PHP 中处理 Oauth2 的代码提示。帮助!

标签: pythonpython-3.xflaskoauth-2.0

解决方案


Miguel Grinberg有一篇很好的博客文章,他在其中描述了如何在烧瓶应用程序中使用 OAuth。尽管我认为该工作流程将与任何其他 Web 应用程序保持一致。


推荐阅读