登录日志后端加会话标识
parent
e8bef583a9
commit
e697208fe2
|
@ -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)
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue