Пример #1
0
    def authenticate(self, request):

        api_key_header = self.header_canonical(self.API_KEY_HEADER)
        api_key = request.META.get(api_key_header)
        if not api_key:
            return None

        nonce = request.META.get(self.header_canonical("nonce"))
        if not nonce:
            raise exceptions.AuthenticationFailed('No nonce provided')

        ts = request.META.get(self.header_canonical("timestamp"))
        if not ts:
            raise exceptions.AuthenticationFailed('No timestamp provided')

        ts_diff = int(time.time()) - int(ts)

        if abs(ts_diff) > self.TIME_BACK:
            raise exceptions.AuthenticationFailed(
                'Timestamp is more than %s minutes different from the server.' % TIME_BACK)

        try:
            nonce = Nonce(nonce=nonce, timestamp=ts)
            nonce.save(force_insert=True)
        except:
            raise exceptions.AuthenticationFailed('Nonce check failed')

        return SignatureAuthentication.authenticate(self, request)
Пример #2
0
    def authenticate(self, request):

        api_key_header = self.header_canonical(self.API_KEY_HEADER)
        api_key = request.META.get(api_key_header)
        if not api_key:
            return None

        nonce = request.META.get(self.header_canonical("nonce"))
        if not nonce:
            raise exceptions.AuthenticationFailed('No nonce provided')

        ts = request.META.get(self.header_canonical("timestamp"))
        if not ts:
            raise exceptions.AuthenticationFailed('No timestamp provided')

        ts_diff = int(time.time()) - int(ts)

        if abs(ts_diff) > self.TIME_BACK:
            raise exceptions.AuthenticationFailed(
                'Timestamp is more than %s minutes different from the server.'
                % TIME_BACK)

        try:
            nonce = Nonce(nonce=nonce, timestamp=ts)
            nonce.save(force_insert=True)
        except:
            raise exceptions.AuthenticationFailed('Nonce check failed')

        return SignatureAuthentication.authenticate(self, request)