diff --git a/dvadmin-backend/apps/vadmin/system/models/logininfor.py b/dvadmin-backend/apps/vadmin/system/models/logininfor.py index 1c78331..44969a5 100644 --- a/dvadmin-backend/apps/vadmin/system/models/logininfor.py +++ b/dvadmin-backend/apps/vadmin/system/models/logininfor.py @@ -4,6 +4,7 @@ from ...op_drf.models import CoreModel class LoginInfor(CoreModel): + session_id = CharField(max_length=64, verbose_name="会话标识", null=True, blank=True) browser = CharField(max_length=64, verbose_name="浏览器") ipaddr = CharField(max_length=32, verbose_name="ip地址", null=True, blank=True) loginLocation = CharField(max_length=64, verbose_name="登录位置", null=True, blank=True) diff --git a/dvadmin-backend/apps/vadmin/utils/login.py b/dvadmin-backend/apps/vadmin/utils/login.py index 2336355..4e83c91 100644 --- a/dvadmin-backend/apps/vadmin/utils/login.py +++ b/dvadmin-backend/apps/vadmin/utils/login.py @@ -62,9 +62,10 @@ class LoginView(ObtainJSONWebToken): else: raise GenException(message='验证码错误') - def save_login_infor(self, request, msg='',status=True): + def save_login_infor(self, request, msg='',status=True,session_id=''): User = get_user_model() instance = LoginInfor() + instance.session_id = session_id instance.browser = get_browser(request) instance.ipaddr = get_request_ip(request) instance.loginLocation = get_login_location(request) @@ -88,7 +89,7 @@ class LoginView(ObtainJSONWebToken): session_id = jwt_get_session_id(token) key = f"{self.prefix}_{session_id}_{username}" cache.set(key, token, self.ex.total_seconds()) - self.save_login_infor(request, '登录成功') + self.save_login_infor(request, '登录成功',session_id=session_id) if self.JWT_AUTH_COOKIE and token: expiration = (datetime.datetime.utcnow() + self.ex) response.set_cookie(self.JWT_AUTH_COOKIE,