无效响应在 /qr/ 协议错误:<,头部



正在尝试将QR代码身份验证在我的项目中实现。因此,我使用了" Django-Qrauth"模块。我遵循https://github.com/aruseni/django-qrauth中提到的每个步骤,但是正在遇到以下错误。

------------------------------------------------------------------------------------------------------------

Environment:

Request Method: GET
Request URL: http://192.168.17.1:1111/qr/
Django Version: 1.6.5
Python Version: 2.7.0
Installed Applications:
('django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.sites',
 'registration',
 'qrcode')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'registration.middleware.MobileDetectionMiddleware')

Traceback:
File "D:USERSSrikanthProjectsDjango Projectstaskmandjangocorehandlersbase.py" in get_response
  112.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "D:USERSSrikanthProjectsDjango Projectstaskmandjangocontribauthdecorators.py" in _wrapped_view
  22.                 return view_func(request, *args, **kwargs)
File "D:USERSSrikanthProjectsDjango Projectstaskmanqrauthviews.py" in wrapper
  41.         return func(*args, **kwargs)
File "D:USERSSrikanthProjectsDjango Projectstaskmanqrauthviews.py" in qr_code_page
  54.         request.user.id
File "D:USERSSrikanthProjectsDjango Projectstaskmanredisclient.py" in setex
  918.         return self.execute_command('SETEX', name, time, value)
File "D:USERSSrikanthProjectsDjango Projectstaskmanredisclient.py" in execute_command
  461.             return self.parse_response(connection, command_name, **options)
File "D:USERSSrikanthProjectsDjango Projectstaskmanredisclient.py" in parse_response
  471.         response = connection.read_response()
File "D:USERSSrikanthProjectsDjango Projectstaskmanredisconnection.py" in read_response
  339.             response = self._parser.read_response()
File "D:USERSSrikanthProjectsDjango Projectstaskmanredisconnection.py" in read_response
  118.                                   (str(byte), str(response)))
Exception Type: InvalidResponse at /qr/
Exception Value: Protocol Error: <, head
-------------------------------- ERROR ENDS --------------------------------
#settings.py
AUTH_QR_CODE_EXPIRATION_TIME = 600 # Ten minutes
AUTH_QR_CODE_REDIS_KWARGS = {
    "host": "192.168.17.1",
    "port": 1111,
    "db": 0,
}
#urls.py
    urlpatterns = patterns('',
        url(r'^admin/', include(admin.site.urls)),
        url(r'^qr/', include('qrauth.urls')),
    )

任何人都可以告诉发生什么。

似乎您已经为Django服务器和Redis服务器配置了相同的端口。

Django服务器于192.168.17.1端口1111在调试输出中的Request URL: http://192.168.17.1:1111/qr/消息证明。另外,settings.py中的Redis服务器配置指定相同的主机名和端口:

AUTH_QR_CODE_REDIS_KWARGS = {
    "host": "192.168.17.1",
    "port": 1111,
    "db": 0,
}

因此,Django的Redis客户端正在连接到Django服务器,发送redis请求,然后接收以<head>标签开头的HTML响应。这是可以预期的,因为它是已联系的Django服务器。

您需要更改REDIS设置,以将端口设置为Redis服务器正在侦听的端口。默认情况下,这是端口6379,但是您可以在Redis配置文件中检查。

相关内容

最新更新