如何从包含响应中的承载令牌的python服务器形成响应。更准确地说,我希望以某种方式将JWT令牌从Flask python服务器安全地传播回客户端(第页)。我可以在GET重定向中以查询字符串的形式返回它。在将JWT访问令牌返回给客户端方面,还有什么其他可能性?我尝试设置响应表单python,并在Authorization字段中设置jwt令牌,但没有任何效果。这就是我所尝试的:
一,
r = Response(headers={
"Authorization": "bearer jwtcntent",
"Access-Control-Allow-Origin": "*",
},
is_redirect=True,
url="https://localhost:5000/callback",
)
return r
r = redirect("http://localhost:5000/callback")
r.headers = {"authorization": "bearer jwtcntent"}
return r
r = Response(headers={
"Authorization": "Bearer jwtcntent",
"Access-Control-Allow-Origin": "*",
},
allow_redirects=True,
url="https://localhost:5000/callback",
)
return r
有什么建议吗
您是否能够在授权服务器中实现常规OAuth流?OAuth流是标准化的,使用安全的方式将访问令牌返回给客户端
我不建议使用
Authorization
头返回响应。此标头是请求标头,在响应中没有任何意义。如果确实需要通过头执行此操作,则可以添加Access-Control-Expose-Headers头,让客户端从响应中读取Authorization
头您可以将其存储在httponly cookie中,但如果这样做,您需要确保处理CSRF攻击。Flask JWT Extended内置了对这一点的支持,您可能会发现这一点非常有用,无论是作为解决方案还是作为您最终所做工作的参考:
https://flask-jwt-extended.readthedocs.io/en/stable/token_locations/#cookies
您还可以将令牌作为JSON主体的一部分发送回去,然后将其存储在本地/会话存储中,这可能是最常见的模式
相关问题 更多 >
编程相关推荐