#原理自定義token,放入cookie中,不用存資料庫
#token定義方式 >>>>> "加密字串"|登陸使用者id|使用者登陸時間
#加密字串由登陸使用者id,登陸時間和鹽通過md5加密完成
import hashlib
def get_token(user_id,current_time):
md5= hashlib.md5()
md5.update("寶塔鎮河妖".encode("utf-8"))
md5.update(str(current_time).encode("utf-8"))
md5.update(str(user_id).encode("utf-8"))
md5.update("egon掏大刀".encode("utf-8"))
token ="|".join([md5.hexdigest(),str(user_id),str(current_time)])
return token
#對應的解密方法
def check_token(token,redis_conn):
try:
res = redis_conn.get(token)
if not res:
return false,"未登陸"
user_info = token.split("|")
user_id = user_info[1]
create_time = user_info[2]
if token != get_token(user_id,create_time):
return false,"非法登陸"
return true,"登陸成功"
except exception as e:
print(e)
return false,"未知錯誤"
pass
#登陸函式
def post(self, request):
uname = request.post.get("uname")
user = user.objects.filter(uname=uname)
if not user:
return response()
pwd = request.post.get("pwd")
hashlib_pwd = hash_pwd(pwd)
db_pwd = user[0].pwd
if hashlib_pwd != db_pwd:
return response()
try:
token = get_token(user[0].pk, time.time())
if user[0].isadmin:
response = render(request, "admin/index.html", )
else:
response = render(request, "user/index.html", )
#將token資訊放入cookie中,客戶端就會將token存入cookie中,下次來的時候request.cookie.get("token")就能拿到
response.set_cookie("token", token)
return response
except exception as e:
return response()
Ribbon 自定義客戶端
ribbon的載入策略是懶載入,即第一次請求的時候才載入對應上下文,正是這個原因,很多時候第一次呼叫顯得很慢,甚至會超時,所以,可以通過指定ribbon具體服務名稱來開啟餓載入,即在工程啟動的時候,載入所有的配置上下文。如下 ribbon eager load enabled true client...
zabbix客戶端win linux,自定義監控項
linux下的zabbix agent原始碼包安裝 step1 安裝依賴包 gcc pcre devel configure prefix usr local zabbix enable agent make make install step3 建立zabbix使用者 useradd s sbin...
FastDFS客戶端與自定義檔案儲存系統
1 安裝 2 使用 使用fastdfs客戶端,需要有配置檔案。我們在meiduo mall utils目錄下新建fastdfs目錄,將提供給大家的client.conf配置檔案放到這個目錄中。需要修改一下client.conf配置檔案 base path fastdfs客戶端存放日誌檔案的目錄 tr...