2013-06-21 50 views
0

我试图做一个API的API将Android应用程式使用。 我开始使用Django + Tastypie,但我是新的Django技术。寻找API的安全方案我已阅读此文档http://django-tastypie.readthedocs.org/en/latest/authentication_authorization.html#apikeyauthentication。我认为这是最好的解决方案,因为我可以获得授权的密钥并允许授权用户使用我的API。与Tastypie为移动设备

的问题是,我无法找到如何做一个很好的例子,我读过的文件,但没有关于如何使用它的一个例子,什么,我应该如何向用户发送和密码的网址?.

+0

按照我的理解应该设置相应的请求头'授权:ApiKey丹尼尔:204db7bcfafb2deb7506b89eb3b9b715b09905c8'可以指定你旅游问题。什么确切地混淆了你? – oleg

+0

我知道如何使用apikey,但我怎么能得到它??我知道的网址,但我应该如何发送用户和密码? – shinjidev

+0

你需要像refresh_token一样的东西吗?或会话ID。我认为你不应该混淆密码和API密码 – oleg

回答

0

当使用api key auth你不需要向用户发送的密码,只有用户名和API密钥。

要创建API密钥,当用户登录时做这样的(没有实际测试过):

 from django.contrib.auth.signals import user_logged_in 
     from tastypie.models import ApiKey 


     def generate_api_key(sender, user, request, **kwargs): 
      api_key = ApiKey.objects.get_or_create(user=user) 
      api_key.key = api_key.generate_key() 
      api_key.save() 

     user_logged_in.connect(generate_api_key) 
+0

但我应该怎么发,以获得API密钥? ? – shinjidev

+0

你不需要发送,添加到django管理员的tastypie,比你有一个模型的API键。点击它并选择用户(留空键区),它将为选定的用户生成一个API KEY – YardenST

+0

有没有什么办法可以在每次用户登录时用tastypie生成一个动态api密钥? – shinjidev