首页 文章

Django authenticate()和login()

提问于
浏览
0

我正在尝试使用login()和authenticate()方法在Django中验证用户 . 完成后,我会重定向到经过身份验证的着陆页 . 当我尝试访问request.user对象时,我总是得到匿名使用对象,即使我正在正常验证用户 . 知道为什么吗?这是login.FYI的代码,我正在使用Django注册 . 并在DB中创建用户(以及他们的用户名和密码) .

def login_my_user(request):
    name = request.POST.get('username', '')
    pwd = request.POST.get('password', '')
    user = authenticate(username=name, password=pwd)
    if user is not None:
        if user.is_active:
            login(request, user)
            #redirect to authenticated page

Settings.py文件信息

# Middleware Settings

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
)


# apps

INSTALLED_APPS = (
    'django.contrib.contenttypes',
    'django.contrib.staticfiles',
    'django.contrib.sessions',
    'django.contrib.auth',
    'test'
)


#Template
TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
)
TEMPLATE_DIRS = (
    PROJECT_DIR + "/templates",
)
TEMPLATE_CONTEXT_PROCESSORS = (
    'django.contrib.auth.context_processors.auth',
    'django.core.context_processors.debug',
    'django.core.context_processors.i18n',
    'django.core.context_processors.media',
    'django.core.context_processors.static',
    'django.contrib.auth.context_processors.auth',
)

检查用户的某些仪表板的用户凭据

def user_dashboard(request):
    user = request.user
    print user

现在,它给出了AnonymousUser问题

1 回答

  • 0

    AUTHENTICATION_BACKENDS 你用的是什么?

    如果您不知道,请在 settings.py 中设置选项:

    AUTHENTICATION_BACKENDS = ('django.contrib.auth.backends.ModelBackend',)
    

相关问题