跳转到主要内容

适用于Django的最小Token认证

项目描述

简单的基于Token的认证。

概述

许多人讨论为他们的REST API提供Token认证……但这究竟意味着什么?它有什么好处?

Token是经过加密签名的数据块。在这种情况下,它包含用户ID、后端和签发时的时间戳。

这使得您可以为手机应用、服务等生成和签发Token,而无需处理登录、密码、CSRF等。

安装

将settings.MIDDLEWARE添加到默认认证中间件之后

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'nap_token.middleware.NapTokenMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'cloudselect.middleware.CORSDefeat',
]

使用方法

当您想要登录用户时,调用nap_token.get_auth_token(user),传递从django.contrib.auth.authenticate返回的用户实例。

它将返回一个签名、带时间戳的Token。客户端只需要在请求中传递这个Token作为Authorization头,格式为‘Bearer {token}’,请求就可以代表该用户执行。如果Token不存在、已过期或无效,requset.user将回退到常规基于Session的认证。

签发Token

以下是一个快速简单的示例,说明如何签发Token,这里是一个为可以登录的用户签发Token的方法

from django.http import HttpResponse
from django.contrib.auth.views import LoginView

from nap_token import get_auth_token

class TokenView(LoginView):

    def form_valid(self, form):
        user = form.get_user()
        return HttpResponse(get_auth_token(user))

项目详情


下载文件

下载适合您平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

nap-token-auth-0.1.2.tar.gz (3.1 kB 查看哈希值)

上传时间 源代码

由以下支持