【发布时间】:2020-07-11 05:35:50
【问题描述】:
我有这个带有重定向的回调 url:
@spotify_auth_bp.route("/callback", methods=['GET', 'POST'])
def spotify_callback():
SPOTIFY_TOKEN_URL = "https://accounts.spotify.com/api/token"
CLIENT_ID = os.environ.get('SPOTIPY_CLIENT_ID')
CLIENT_SECRET = os.environ.get('SPOTIPY_CLIENT_SECRET')
REDIRECT_URI = os.environ.get('SPOTIPY_REDIRECT_URI')
auth_token = request.args['code']
code_payload = {
"grant_type": "authorization_code",
"code": auth_token,
"redirect_uri": REDIRECT_URI,
'client_id': CLIENT_ID,
'client_secret': CLIENT_SECRET,
}
post_request = requests.post(SPOTIFY_TOKEN_URL, data=code_payload)
# Auth Step 5: Tokens are Returned to Application
response_data = json.loads(post_request.text)
access_token = response_data["access_token"]
refresh_token = response_data["refresh_token"]
token_type = response_data["token_type"]
expires_in = response_data["expires_in"]
token_info = {'access_token': access_token,
'refresh_token': refresh_token,
'token_type': token_type,
'expires_in': expires_in}
res = make_response(redirect('http://localhost/about', code=302))
# I'd rather send token_info to `localStorage` at my client, instead of setting cookies
#res.set_cookie('access_token', access_token)
#res.set_cookie('refresh_token', refresh_token)
#res.set_cookie('token_type', token_type)
#res.set_cookie('expires_in', str(expires_in))
return res
有没有办法在重定向发生之前通过make_response() 将上面带有jsonify()(或其他)的“token_info”发送给客户端?
【问题讨论】:
-
res = make_response('<script>document.location.href="/about"</script>');...我猜也许 -
想给出正式而完整的答案吗?谢谢!
-
@JoranBeasley 你的脚本重定向,我如何传递 json?
标签: python json flask response.redirect