基于IP的Django令牌授权

时间:2017-04-03 06:41:38

标签: django

我正在寻找有关基于令牌的授权方面的一些帮助。我们有一个客户端服务器模型。客户端第一次联系服务器并获取令牌。每当向服务器发送新消息时,必须使用该令牌。我没有这样的用户。消息是来自系统的触发器。有人可以建议如何继续吗? 我遇到了这个链接    http://www.tomchristie.com/rest-framework-2-docs/api-guide/authentication

但是当我从机器请求保存它时,我很困惑。

1 个答案:

答案 0 :(得分:0)

您可以拥有中间件层,您可以在其中检查请求是否来自某个IP。如果是这样,那么您可以编程允许或拒绝请求通过。如果允许请求,则可以使用Django令牌身份验证进行身份验证。在这里,我假设你正在使用像DRF,Tastypie

这样的东西
class MiddleWare2CheckIP(object):
    def process_request(self, request):
        ip = request.META['REMOTE_ADDR']
        ### if ip is in list:
           ...

然后将中间件路径添加到MIDDLEWARE_CLASSES

 MIDDLEWARE_CLASSES = (
     ...,
     'path-to-middleware-MiddleWare2CheckIP',
     ...
 )

OR

您可以拥有一个可以与所有apis一起使用的装饰器,以检查请求是否来自某些IP