Simple Linux Panel
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
mdserver-web/web/thisdb/temp_login.py

75 lines
2.0 KiB

# coding:utf-8
# ---------------------------------------------------------------------------------
# MW-Linux面板
# ---------------------------------------------------------------------------------
# copyright (c) 2018-∞(https://github.com/midoks/mdserver-web) All rights reserved.
# ---------------------------------------------------------------------------------
# Author: midoks <midoks@163.com>
# ---------------------------------------------------------------------------------
import time
import core.mw as mw
__FIELD = 'id,token,salt,state,login_time,login_addr,logout_time,expire,add_time'
def addTempLogin(
token:str | None = None,
expire:int | None = None
):
if expire is None:
start_time = int(time.time())
expire=start_time+3600
if token is None:
salt = mw.getRandomString(12)
r = mw.getRandomString(48)
token = mw.md5(r + salt)
now_time = mw.formatDate()
insert_data = {
'token':token,
'salt':'0',
'state':0,
'login_time':0,
'login_addr':'',
'expire':expire,
'add_time':now_time,
}
return mw.M('temp_login').insert(insert_data)
def getTempLoginPage(
page: int | None = 1,
size: int | None = 10,
):
start = (page - 1) * size
limit = str(start) + ',' + str(size)
tl_list = mw.M('temp_login').where('', ()).field(__FIELD).limit(limit).order('id desc').select()
count = mw.M('temp_login').where('', ()).count()
rdata = {}
rdata['list'] = tl_list
rdata['count'] = count
return rdata
def getTempLoginByToken(token,
) -> None:
'''
获取用户信息通过用户名
'''
data = mw.M('temp_login').where('token=?', (token,)).field(__FIELD).order('id asc').find()
return data
def deleteTempLoginById(id) :
return mw.M('temp_login').where('id=?', (id,)).delete()
def clearTempLogin()->bool:
'''
清空过期数据
'''
now_time = int(time.time())
mw.M('temp_login').where('expire<?', (now_time)).delete()
return True