【问题标题】:redirect flask with token使用令牌重定向烧瓶
【发布时间】:2017-01-12 07:38:03
【问题描述】:

我是flask新手,在重定向页面时感到困惑。

所以这是问题所在,我必须为我的登录页面重定向到第 3 方 示例:

@app.route('/hk/login/3rdparty', methods=['GET'])
def login_3rdparty():
  if request.method == 'GET':
    app_id = 'xxxxx'
    secret = 'xxxxx'
    data = 3rdparty.connect(app_id, secret)
  return data

当我直接访问网络时,它会像这样返回:

{"url":"http://demo3.3rdparty.com/partner/code/hk?token=sometoke-sometoken-sometoken"}

如何从返回的 json 重定向?所以在我直接到 /hk/login/3rdparty 后,它会重定向到带有 url 背面的令牌的网络

对不起我的英语不好

【问题讨论】:

  • data是包含你需要的URL的json吗?你能简单地做return redirect(data['url'])吗?为此,您必须将 from flask import redirect 添加到您的文件中。
  • 是的,数据包含我需要的 URL。我试过你的解决方案,它像这样返回“return redirect (data['url']) TypeError: string indices must be integers”@coralv
  • 很高兴听到,@SNOW。我用该信息和更多细节提出了答案。如果有帮助,请标记为已接受。

标签: python redirect flask


【解决方案1】:

如果您问题中的data 变量包含您需要的json 对象,那么您可以使用redirect() 函数将您的用户发送到它包含的地址。您的答案结合了我们的两个 cmets,但我想添加它以确保其他人也可以看到必要的 import 语句。

import json
from flask import redirect

@app.route('/hk/login/3rdparty')
def login_3rdparty():
    app_id = 'xxxxx'
    secret = 'xxxxx'
    raw_data = 3rdparty.connect(app_id, secret)
    data = json.loads(raw_data)
    return redirect (data['url'])

如果这是此函数使用的唯一方法,我认为您甚至不需要指定 GET 作为方法。继续努力,SNOW。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    • 2013-10-08
    • 2014-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多