28 Nisan 2024 14:09

Anasayfa

undefined...

Django projelerinizde oturum zaman aşımına göre tekrar giriş yaptırmak veya bilgi vermek siterseniz middleware ile her request ve respons eişlemi kontrol edilip, belirlenen süreden fazla zamanda işlem ypaılmadı ise çıkış yaptırılabilir.

 

/projeklasoru/uygulama/middleware.py
import time

from django.contrib import messages
from django.contrib.auth import logout
from django.utils.translation import ugettext as _

OTURUM_ZAMAN_ASIM_SURESI = 10


class OturumZamanAsimiKontrol:

def __init__(self, get_response):
self.get_response = get_response

def __call__(self, request):

if request.user.is_authenticated:
gecerli_zaman = int(time.time())

try:
request.session['last_activity']
except:
request.session['last_activity'] = gecerli_zaman

if (gecerli_zaman - request.session['last_activity']) >= OTURUM_ZAMAN_ASIM_SURESI:
logout(request)
messages.add_message(request, messages.ERROR, _('Oturumunuz zaman aşımına uğradı!'))

else:
request.session['last_activity'] = gecerli_zaman

response = self.get_response(request)
return response

 

projeklasoru/projeklasoru/settings.py
MIDDLEWARE                                          = [
'django.middleware.security.SecurityMiddleware',
'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',
'uygulama.middleware.OturumZamanAsimiKontrol'
]

 

Django

hakkında diğer konular

Makdos Bilişim Teknolojileri 2015 - 2022