在服务之间传播 JWT Token
Propagate JWT Token between services
我希望使用 flask-jwt-extended 库在 docker 中的服务 运行 之间传播 JWT 令牌,我知道如何使用类似的东西来做到这一点对此:
request.post(url, json={"access_token": access_token, "refresh_token": refresh_token)
但根据我的经验,我需要 return 回复才能执行此操作。
我已经让前端创建令牌并保护我的路由。我只想使用该令牌对后端执行相同的操作。
我希望能够从我的前端应用程序登录,并在我登录时将令牌传播到其他服务。我该如何处理?
我会将 post 请求发送到类似于此的函数:
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == "POST":
resp = jsonify({'login': True})
set_access_cookies(resp, request.json["access_token"])
set_refresh_cookies(resp, request.json["refresh_token"])
return resp, 200
我需要return那个回复吗?
令牌共享应该通过签名信任来完成。确保您的其他服务 "know" 受信任签名者的 public 密钥。
这是基础知识:
前端通过授权向后端请求令牌api
后端验证凭据,使用 'RSXXX' 算法颁发令牌,例如。 'RS512'
前端将令牌传递给对任何后端服务的所有调用。
当后端收到令牌时,它会在将令牌负载应用于请求的操作之前使用令牌的 public 密钥身份验证签名和 "source"。
所有后端服务和前端都应该有一个配置元素,它定义了一个或多个用于令牌签名的可信 public 密钥。
本文提供了一些有关在 pyjwt 中使用 public/private 密钥对的有用信息:
https://blog.miguelgrinberg.com/post/json-web-tokens-with-public-key-signatures
我希望使用 flask-jwt-extended 库在 docker 中的服务 运行 之间传播 JWT 令牌,我知道如何使用类似的东西来做到这一点对此:
request.post(url, json={"access_token": access_token, "refresh_token": refresh_token)
但根据我的经验,我需要 return 回复才能执行此操作。
我已经让前端创建令牌并保护我的路由。我只想使用该令牌对后端执行相同的操作。
我希望能够从我的前端应用程序登录,并在我登录时将令牌传播到其他服务。我该如何处理?
我会将 post 请求发送到类似于此的函数:
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == "POST":
resp = jsonify({'login': True})
set_access_cookies(resp, request.json["access_token"])
set_refresh_cookies(resp, request.json["refresh_token"])
return resp, 200
我需要return那个回复吗?
令牌共享应该通过签名信任来完成。确保您的其他服务 "know" 受信任签名者的 public 密钥。
这是基础知识:
前端通过授权向后端请求令牌api
后端验证凭据,使用 'RSXXX' 算法颁发令牌,例如。 'RS512'
前端将令牌传递给对任何后端服务的所有调用。
当后端收到令牌时,它会在将令牌负载应用于请求的操作之前使用令牌的 public 密钥身份验证签名和 "source"。
所有后端服务和前端都应该有一个配置元素,它定义了一个或多个用于令牌签名的可信 public 密钥。
本文提供了一些有关在 pyjwt 中使用 public/private 密钥对的有用信息: https://blog.miguelgrinberg.com/post/json-web-tokens-with-public-key-signatures