我正在尝试使用 tivix 的 django-rest-auth
和 django-rest-framework
实现身份验证(文档链接)。我像这样在 Django shell 中创建了一个用户:
from django.contrib.auth.models import User
user = User.objects.create_user(username='foo', email='foo@bar.com', password='bar')
user.save()
根据文档,我使用django-rest-auth
登录用户,命令如下(终端操作):
curl -X POST -d "username=foo&password=bar&email=foo@bar.com" http://127.0.0.1:8000/rest-auth/login/
它返回了一个令牌,我知道用户已通过身份验证。
现在我使用django-rest-auth文档中描述的方法进行了注销,但我仍然可以在数据库中看到令牌。然后我再次登录,它返回了同样的令牌作为密钥。
那么是否有任何方式可以使令牌更改或在用户注销时被删除?另外,在文档中没有提到令牌本身是否会在一定时间后过期(自动删除)。
如果不存在这样的功能,如何在两种情况下删除令牌?
编辑:登录和注销代码
urls.py(主文件):
url(r'^rest-auth/', include('rest_auth.urls')),
settings.py:
INSTALLED_APPS = [
...
'rest_framework',
'rest_framework.authtoken',
'rest_auth',
...
]
登录CURL命令:(如上所示)。 登录命令响应:
{u'key': u'e41f0a1c2f5e55569df1c41d1d5d4efb77beddee'}
退出登录的 CURL 命令:
curl -X POST -d "key=e41f0a1c2f5e55569df1c41d1d5d4efb77beddee" http://127.0.0.1:8000/rest-auth/logout/
注销响应:
{u'success': u'Successfully logged out.'}
user.auth_token.delete()
吗? - Håken Lid