Django 的简单密钥和令牌认证。
项目描述
django 的密钥认证。可以很容易地与 django-piston 一起使用。
基于https://github.com/scoursen/django-apikey。
安装
pip install django-apikey
配置
将“apikey”添加到您的 settings.py:
INSTALLED_APPS = ( ... 'apikey', .... )
一个问题
什么是令牌和密钥?它们之间有哪些区别?
令牌
生成令牌:
Token.objects.create(user)
只要它保持活动状态,它就可以用来对 Django-Piston 的请求进行身份验证,这在 settings.py 中配置:
TOKEN_VALID_SECONDS = 3600
用于发送令牌的标头在 settings.py 中配置:
TOKEN_AUTH_HEADER = 'X-Auth-Token'
要在资源处理程序中请求令牌,请像这样使用它:
from apikey.auth import TokenAuthentication
from piston.handler import BaseHandler
from piston.resource import Resource
from app.models import Item
class ItemHandler(BaseHandler):
allowed_methods = ('GET', )
fields = ('name', 'id')
model = Item
def read(self, request):
return Item.objects.all()
handler = Resource(
handler=ItemHandler, authentication=TokenAuthentication())
令牌在每次请求后保持活动 TOKEN_VALID_SECONDS,并且应该在使用用户名/电子邮件和密码/密钥或 Basic、Digest 进行身份验证的请求中创建。
ApiKey
ApiKey 基本上是用于验证请求的密钥,用于替换所有 API 请求中的电子邮件/用户名和密码。
您可以通过在 settings.py 中设置 APIKEY_AUTHORIZATION_HEADER 来更改授权标头:
APIKEY_AUTHORIZATION_HEADER = 'App-Authorization'
要使用活塞添加 api 身份验证,请在您的处理程序中写入:
from apikey.auth import ApiKeyAuthentication
from piston.handler import BaseHandler
from piston.resource import Resource
from app.models import Item
class ItemHandler(BaseHandler):
allowed_methods = ('GET', )
fields = ('name', 'id')
model = Item
def read(self, request):
return Item.objects.all()
handler = Resource(
handler=ItemHandler, authentication=ApiKeyAuthentication())
谢谢
该项目基于 Steve Coursen https://github.com/scoursen/django-apikey之一,但有一些简化,并添加了。
执照
该软件根据新 BSD 许可证获得许可。