0
所以我試圖對基於令牌的身份驗證微服務進行身份驗證。如何在Django中通過請求對象保存並傳遞令牌?
我知道這並不理想,但我剛開始寫這個快速中間件。
middleware.py
def process_request(self, request):
if request.token = None:
pass
else:
username = validate_token(request.token)
request.username = username
views.py
def login(request):
form = LoginForm()
if request.method == 'POST':
form = LoginForm(request.POST)
if form.is_valid():
my_token = authservice_login(user,pass)
request.token = my_token
我的問題是,一旦有人登錄並返回一個道理,我怎麼保持這種令牌的所有請求之間持久?我想我對Django請求對象有點模糊。如果我登錄,然後轉到其他頁面調用其他視圖,我仍然可以訪問我在登錄期間創建的request.token嗎?
我想我最想要的是在登錄後將此令牌傳遞給所有通過中間件的請求?
我繞過了Django內置的用戶對象。 – david
簡而言之,我需要一種「保留」令牌的方式,因爲令牌只由auth服務創建並返回一次,所以我需要保留並通過所有請求傳遞令牌。 – david
我不認爲繞過Django的內置用戶對象是一個好主意,您將不得不重新創建許多常見任務。 3d方的身份驗證服務可以與'django.contrib.auth'集成。儘管如此,如果您仍然喜歡以您的方式進行操作,您可以使用會話來保存令牌,也可以將令牌返回給客戶端,然後將其傳遞給每個請求。後兩種方法都需要特別注意安全性。但這是另一個話題。順便說一句,如果你正在構建一個微服務,我建議注意http://www.django-rest-framework.org/。 – abcdn