Create new auth backend for rest_framework based on session, but without csrf.
parent
660932c0f5
commit
90b5888fbc
|
@ -0,0 +1,24 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from rest_framework.authentication import BaseAuthentication
|
||||||
|
|
||||||
|
|
||||||
|
class SessionAuthentication(BaseAuthentication):
|
||||||
|
"""
|
||||||
|
Use Django's session framework for authentication without csrf.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def authenticate(self, request):
|
||||||
|
"""
|
||||||
|
Returns a `User` if the request session currently has a logged in user.
|
||||||
|
Otherwise returns `None`.
|
||||||
|
"""
|
||||||
|
|
||||||
|
http_request = request._request
|
||||||
|
user = getattr(http_request, 'user', None)
|
||||||
|
|
||||||
|
if not user or not user.is_active:
|
||||||
|
return None
|
||||||
|
|
||||||
|
return (user, None)
|
||||||
|
|
|
@ -163,13 +163,13 @@ TEMPLATE_LOADERS = [
|
||||||
|
|
||||||
MIDDLEWARE_CLASSES = [
|
MIDDLEWARE_CLASSES = [
|
||||||
'django.middleware.common.CommonMiddleware',
|
'django.middleware.common.CommonMiddleware',
|
||||||
|
'django.middleware.locale.LocaleMiddleware',
|
||||||
'greenmine.base.middleware.GreenmineSessionMiddleware',
|
'greenmine.base.middleware.GreenmineSessionMiddleware',
|
||||||
'greenmine.base.middleware.CoorsMiddleware',
|
'greenmine.base.middleware.CoorsMiddleware',
|
||||||
'django.middleware.locale.LocaleMiddleware',
|
#'django.middleware.csrf.CsrfViewMiddleware',
|
||||||
'django.middleware.csrf.CsrfViewMiddleware',
|
|
||||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||||
'django.contrib.messages.middleware.MessageMiddleware',
|
#'django.contrib.messages.middleware.MessageMiddleware',
|
||||||
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
#'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
||||||
'django.middleware.transaction.TransactionMiddleware',
|
'django.middleware.transaction.TransactionMiddleware',
|
||||||
'reversion.middleware.RevisionMiddleware',
|
'reversion.middleware.RevisionMiddleware',
|
||||||
]
|
]
|
||||||
|
@ -320,7 +320,7 @@ HAYSTACK_DEFAULT_OPERATOR = 'AND'
|
||||||
|
|
||||||
REST_FRAMEWORK = {
|
REST_FRAMEWORK = {
|
||||||
'DEFAULT_AUTHENTICATION_CLASSES': (
|
'DEFAULT_AUTHENTICATION_CLASSES': (
|
||||||
'rest_framework.authentication.SessionAuthentication',
|
'greenmine.base.auth.SessionAuthentication',
|
||||||
),
|
),
|
||||||
'FILTER_BACKEND': 'rest_framework.filters.DjangoFilterBackend',
|
'FILTER_BACKEND': 'rest_framework.filters.DjangoFilterBackend',
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue