在DjangoRestFramework中更改令牌密钥名称的目的是什么

时间:2017-08-17 14:05:55

标签: token django-rest-framework

在DjangoRestFramework中,您可以更改标题中的关键字以进行标记验证。

来自docs

  

注意:如果要在标题中使用其他关键字,例如   Bearer,只是子类TokenAuthentication并设置关键字class   变量

更改默认关键字的目的是什么? 我已经看过“Bearer',' Basic'以及其他一些变体,但只是不明白这样做的目的。 谁能解释一下?

2 个答案:

答案 0 :(得分:4)

我发现了如何将keyword传递给TokenAuthentication

class BearerAuthentication(authentication.TokenAuthentication):
    '''
    Simple token based authentication using utvsapitoken.

    Clients should authenticate by passing the token key in the 'Authorization'
    HTTP header, prepended with the string 'Bearer '.  For example:

    Authorization: Bearer 956e252a-513c-48c5-92dd-bfddc364e812
    '''
    keyword = 'Bearer'

然后,我们将使用authentication.TokenAuthentication

而不是在settings.py中使用BearerAuthentication
# settings.py
REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (                                                                                                                                                                                       
        'your.models.BearerAuthentication',
    )
}

答案 1 :(得分:0)

  

许多Web服务器支持多种授权方法。在那些   只发送令牌的情况是不够的。

Source