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,它应该在通过用户名/电子邮件和密码/密钥或基本、摘要进行认证的请求中创建。
ApiKey
ApiKey基本上是一个密钥,用于认证请求,它替代了所有API请求中的电子邮件/用户名和密码。
您可以通过设置settings.py中的APIKEY_AUTHORIZATION_HEADER来更改授权头部
APIKEY_AUTHORIZATION_HEADER = 'App-Authorization'
要添加piston的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许可证授权。