簡體   English   中英

django:自定義令牌認證

[英]django: customized token authentication

我正在做 API,並嘗試使用令牌。 我想實現: 1,客戶端向服務器發出請求,頭部帶有令牌; 2、服務器驗證令牌並做一些事情(一次)。

查看DRF ,如果我想覆蓋身份驗證功能,我還需要返回 User 對象或我們自己定制的 User 對象。 我不想返回任何用戶對象,因為整個過程不涉及任何用戶,只是令牌和做某事的權限。 如何做到這一點?

謝謝

首先,在models.py中創建modelToken 此外,您需要創建一個token_required裝飾器。 每當用戶登錄時,都會創建一個令牌,每當她/他注銷時,令牌就會被銷毀。

登錄

def login(request):
    username=request.payload.get('username')
    password=request.payload.get('password')
    user,err=Auth.authenticate(username,password)
    if err:
        raise Exception()
    token=Token.generate()
    #you can return user
    return {'token':token}

裝飾者

def token_required(func):
    def inner(request, *args, **kwargs):
        try:
            request.token=Token.objects.get(token=token)
            return func(request, *args, **kwargs)
        except Token.DoesNotExists:
            pass
    return inner

登出

@token_required
def logout(request):
    if request.method=='POST':
        request.token.delete()
        return {'status':'ok'}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM