gpt4 book ai didi

Django - 如何在微服务架构中实现认证服务

转载 作者:行者123 更新时间:2023-12-03 22:44:09 26 4
gpt4 key购买 nike

基本上,我有几个独立的服务。我想构建一个身份验证服务。当客户端从身份验证服务获取 token 时。客户使用它来进一步请求其他服务。客户端需要在请求的 header 中附加该 token 。接收 token 的服务需要通过将 token 发送到身份验证服务器来验证 token 。因此,客户端对 protected 路由发出的所有请求都需要通过身份验证服务进行验证。问题是我不知道放置自动将 token 发送到身份验证服务并接收结果的代码的最佳位置。
这是我到目前为止尝试过的:
我实现了一个这样的中间件:

class VerifyTokenMiddleware(object):

def process_request(self, request):
if not request.META.get('HTTP_AUTHORIZATION'):
return HttpResponse(status=404)
auth_header = request.META.get('HTTP_AUTHORIZATION')
token = auth_header[4:]
response = requests.post(AUTH_URL, {"token": token})
if response.status_code == 400:
return HttpResponse(status=403)
return None

但是,我的解决方案的问题是对服务(不是身份验证服务)的每个请求都必须通过该中间件。因此,客户端无法像以前一样访问不 protected 路由。
非常感谢任何帮助。 :D

我使用了 django restframework jwt https://github.com/GetBlimp/django-rest-framework-jwt .

最佳答案

设计微服务的方法有很多种,你可以写文件restful方法,比如

class RestFulClient:
@classmethod
def get(cls, url, loggers, headers):
return is_success, status_code, data

@classmethod
def post(cls, url, headers, loggers, params={}):
return is_success, status_code, status_message, data

@classmethod
def put(cls, url, headers, loggers, params={}):
return is_success, status_code, status_message, data

@classmethod
def delete(cls, url, headers, loggers, params={}):
return is_success, status_code, status_message
任何问题?

关于Django - 如何在微服务架构中实现认证服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45300410/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com