Django在redirect()上设置头文件

时间:2016-06-06 15:09:09

标签: django redirect

我正在答案here中尝试该方法。像这样:

url = 'https://InternalURL'
token = 'api token here'
response = redirect(url)
response['Token'] = token
return response

此代码位于单击模板中的链接时调用的视图中。执行一些操作来构建正确的URL和在此代码之前获取api令牌。

如果我通过Fiddler检查请求,则第一个具有302状态代码的重定向包含我设置的标头。但是后续尝试导航到我想要重定向到的实际网址的请求,我需要的标头没有设置。

显然,由于标头中不存在身份验证令牌,导致请求失败。

我完全错过了一些明显的东西吗?有一个更好的方法吗? 预先感谢您的任何帮助!

1 个答案:

答案 0 :(得分:0)

尝试下面的代码,它对我有用

 base_url = '/dashboard/'  # 1 /<redirect-route>
 query_string =  urlencode({'token': jwt.encode(payload, "SECRET PHRASE")})  # 2 token=jwt-token
 url = '{}?{}'.format(base_url, query_string)  # 3 /<redirect-route>/?token=jwt-token
        return redirect(url)

您可以在类似的视图处检索

token = request.GET.get('token')

我不知道这是否是最好的方法,但是可以,对于我来说,它是可行的。