如何访问Flask中重定向URI中的参数?

2024-05-23 20:22:49 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

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

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

@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的代码提示。救命啊!在


Tags: the用户程序apiappurlflask电子邮件
2条回答

Based on this似乎应该能够通过从url获取变量参数来获取访问令牌。我没有您的完整代码,所以我无法测试,也没有尝试过在url中使用Š,但这应该是有效的

@app.route('/originalurl')
@app.route('/redirect_url#<access_token>')
def show_user_profile(access_token):
    if access_token:
        #do work
        return redirect(url_for('Anotherview')

    return render_template('template.hmtl')

否则,我们需要更多关于使用Oauth的api的信息

miguelgrinberg有一个很好的blog post,他描述了如何在flask应用程序中使用OAuth。不过,我认为工作流与其他任何web应用程序都是一样的。在

相关问题 更多 >