当前位置: 首页 > 面试题库 >

Django Tastypie:如何使用API​​密钥进行身份验证

习华灿
2023-03-14
问题内容

我正在用TastyPie制作内部API。我有

from tastypie.authentication import ApiKeyAuthentication
class MyResource(ModelResource):
  Meta:
    authentication = ApiKeyAuthentication()

禁用身份验证规则后,我的API效果很好。启用它后,无论尝试如何,都会收到401(未经授权)的响应。

我敢肯定,一旦你看到它的实际作用,这就是其中的一件事,但与此同时,请告知如何提出请求(GET)。


问题答案:

将用户名和api_key参数添加到你的GET变量中。确保你拥有

curl http://localhost:8000/api/v1/books/?username=issackelly\&api_key=123456789adfljafal

设置时,请确保遵循docs的其他说明:

ApiKey身份验证
作为要求敏感数据(例如密码)的一种替代方法,ApiKeyAuthentication允许你仅收集用户名和计算机生成的api密钥。Tastypie专门为此目的提供了特殊的模型,因此你需要确保自己在INSTALLED_APPS中。

Tastypie包含一个信号功能,可用于自动创建ApiKey对象。连接起来看起来像:

from django.contrib.auth.models import User
from django.db import models
from tastypie.models import create_api_key

models.signals.post_save.connect(create_api_key, sender=User)


 类似资料:
  • 面向公共的服务需要api密钥。 “专用”服务只能接受来自群集内部的呼叫,而不能接受外部世界的呼叫。 每个api都标识一个用户,并且用户对象必须可用于rest服务。 在一个JAX-RS应用程序中有什么标准的方法可以做到这一点吗?(我们用的是resteasy。) 我读过关于过滤器、拦截器和基本身份验证的所有内容,但我不清楚什么是最好的方法。

  • null 身份验证工作流会是什么样子?有任何可用的例子吗?我们可以通过使用MSAL来实现吗? 假设我们已经创建了一个Azure密钥库,并在该库中保存了一些秘密。如何在Windows 10下运行的桌面应用程序中实现以下功能: 当前Windows用户是Azure AD组GroupA的一部分,位于Azure密钥库的同一承租人之下。 当当前用户从同一用户会话启动桌面应用程序时,应用程序可以访问所述密钥库中

  • 我正在使用生成用户密码的强哈希值。我想登录用户,但不想通过网络以明文形式发送密码,如何检查密码是否正确(没有往返),因为它是加盐的? 我有一个客户端/服务器场景。客户端是台式计算机上的应用程序(不是网站,也不是超文本传输协议服务器)。 我怎样才能做到这一点?我只是走了这么远:我正在客户端上生成salt散列,从中形成一个mcf并将其发送到我的服务器。将mcf保存到数据库。我没有发送密码,只发送了实际

  • 我正在尝试使用私钥和公钥对为sftp服务器设置身份验证。 我已经在本地计算机上设置了带有Bitvise SSH服务器的sftp服务器。我用SSH服务器生成了私钥和公钥。我已经在SSH服务器的主机密钥部分上设置了私钥,并且已经创建了一个虚拟帐户并将公钥设置到该帐户。 谢谢

  • 嗨,好几天了,我都被困在这上面了!在使用本指南转换我的react应用程序后,我尝试使用KeyClope对我的electron应用程序进行身份验证。 当我运行'npm运行电子:dev'时,keyCloak会重定向到登录页面。然而,当我运行'npm运行电子:prod'这失败。 来自KeyClope服务器的日志显示: 请注意,重定向_uri是'file:///...“我相信这就是原因。 我也试图改变下面