如何从Flask返回承载JWT令牌?

2024-10-02 00:20:15 发布

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

如何从包含响应中的承载令牌的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

有什么建议吗


Tags: 服务器localhost客户端returnaccessresponsecallbackorigin
2条回答

您是否能够在授权服务器中实现常规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主体的一部分发送回去,然后将其存储在本地/会话存储中,这可能是最常见的模式

相关问题 更多 >

    热门问题