我嘗試編寫一個函數,該函數獲取登錄人的username
,然後將session_key
更改爲新的函數。續訂session_key django
我至今寫的是這樣的:
def get_username(request):
try:
for coisa in request:
session_key = coisa # This seems to be wrong, but it works
session = Session.objects.get(session_key=session_key)
user_id = session.get_decoded().get('_auth_user_id')
user = User.objects.get(id=user_id) # Works very well until here, trust me
session.cycle_key() #this is where I'm getting the error
return HttpResponse(user.username)
except Exception, e:
print 'Erro: ' + str(e)
return HttpResponseServerError(str(e))
該請求可變我路過不是一般的Django的要求,這是由一個javascript腳本建立了一個請求,只有在其數據session_key可以。
我得到的錯誤是這樣的:'Session' object has no attribute 'cycle_key'
我使用這個函數的session_key可以從運行時,頁面會加載,讓request
是一個「正常」的請求函數來了從django變量:
session_key = request.session.session_key
這get_username功能將被用於驗證和設置用戶的用戶名登錄聊天服務器上(使用節點和socket.io)。我的方法,這是獲得:它與會話密鑰初始化用戶名和來自django的session_key並進行比較。如果它們來自同一個用戶,那麼可以,我們可以繼續,否則全部取消,但是這個函數是從聊天服務器調用的,所以它發送的請求與django不一樣。由於這個原因,我不能簡單地做'request.session.cycle_key()'或'request.user' – user2449798 2014-09-20 22:33:38