相关疑难解决方法(0)

django rest framework - 令牌认证注销

我已经根据django rest框架Docs实现了令牌认证.

从我读到的形式来看,DRF的令牌认证非常简单 - 每个用户一个令牌,令牌不会过期并且始终有效(我是对的吗?).

我知道有更好的做法,但是现在DRF令牌认证对我来说很好.

我的问题是 -使用普通DRF令牌身份验证注销的最佳做法什么?

我的意思是,当用户注销时,我应该从客户端删除令牌吗?然后登录再次获取令牌?我应该删除令牌并生成一个新令牌吗?

有经验的人吗?

login token logout django-rest-framework http-token-authentication

22
推荐指数
2
解决办法
2万
查看次数

'WSGIRequest'对象没有属性'successful_authenticator'

我已经创建了一个认证类:

RESTful API的令牌认证:令牌是否应定期更改?

restapi/settings.py

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.BasicAuthentication',
        'rest_framework.authentication.SessionAuthentication',
        # 'rest_framework.authentication.TokenAuthentication',
        'restapi.authentication.ExpiringTokenAuthentication',
    ),
    'PAGINATE_BY': 10
}
Run Code Online (Sandbox Code Playgroud)

restapi/authentication.py

import datetime
from rest_framework.authentication import TokenAuthentication

class ExpiringTokenAuthentication(TokenAuthentication):
    def authenticate_credentials(self, key):
        try:
            token = self.model.objects.get(key=key)
        except self.model.DoesNotExist:
            raise exceptions.AuthenticationFailed('Invalid token')

        if not token.user.is_active:
            raise exceptions.AuthenticationFailed('User inactive or deleted')

        # This is required for the time comparison
        utc_now = datetime.utcnow()
        utc_now = utc_now.replace(tzinfo=pytz.utc)

        if token.created < utc_now - timedelta(hours=24):
            raise exceptions.AuthenticationFailed('Token has expired')

        return token.user, token
Run Code Online (Sandbox Code Playgroud)

restapi/tests.py

def test_get_missions(self):
    """
    Tests that …
Run Code Online (Sandbox Code Playgroud)

authentication django token django-rest-framework

6
推荐指数
2
解决办法
5771
查看次数

django-rest-framework Token Auth和logout

据了解,obtain_auth_tokenview可用作登录功能.您提供凭据并获取令牌.注销会是什么?我应该在退出时删除令牌吗?什么是最佳做法?

如果删除没问题,那么如何同时处理多个客户端.比如说,用户从移动设备注销但希望保持登录网络.该Token模型目前具有OneToOne关系User.

请给我一些建议.谢谢

authentication token django-rest-framework

6
推荐指数
1
解决办法
4431
查看次数

令牌有效期多长?Django REST框架

我正在使用Django Rest Framework令牌认证机制.

http://www.django-rest-framework.org/api-guide/authentication#tokenauthentication

当创建createdte标记时,它创建带有字段的数据库表,其值等于时间戳.例如:2014-04-07 07:42:50.395626

有谁知道这个令牌有效多长时间?我在上述网站上找不到此信息.

我也想知道,即使用户更改密码,此令牌仍然有效.它不应该生成一个新的,或至少使旧的不再有效?

django rest token django-rest-framework

5
推荐指数
1
解决办法
6256
查看次数

如何使用多个网络服务器使 Django REST JWT 身份验证扩展?

我目前有一个 Django 应用程序,它只是一堆 REST API(当然由数据库支持)。我正在使用Django REST framework JWT管理我的身份验证。它工作正常。每当用户登录时,我的 API 之一都会返回一个令牌,消费应用程序存储该令牌以供以后使用。到现在为止还挺好。

但是,将来,此解决方案需要扩展。而不是让单个服务器运行 Django 应用程序,我可以预见我需要多个 Web 服务器的情况。当然,所有这些网络服务器都将连接到同一个数据库。但是由于令牌未存储在数据库中,这将如何与多个 Web 服务器一起使用?一台服务器发出的令牌在另一台服务器上无效。

那么其他人是如何解决这个问题的呢??

django rest restful-authentication django-authentication django-rest-framework

4
推荐指数
2
解决办法
2851
查看次数