我有一个Django后端,它将用作我的API端点。用户由username
和password
标识,并具有一些额外的信息,应该可以使用我的相同API,因此我想为其授予令牌。
sha256(api_key + password + some_salt)
这样的方式(其中salt
是一个时间戳对象)可以解决问题,并有助于到期)我看了看Oauth 2.0,但是TBH我无法完全弄清楚它,而且它过于复杂,因为我的API服务器也将是我的身份验证服务器。
答案 0 :(得分:0)
我不建议您建立自己的身份验证方案,也不建议您部署自己的加密功能。如今,API身份验证和授权的行业标准是OAuth 2.0,它提供了您在功能强大但易于实现的解决方案中描述的所有要求。
如果上述应用程序不需要任何OAuth 2.0授权概念,那么使用OpenID Connect当然是一个不错的方法。 OpenID Connect是基于OAuth 2.0构建的协议:
它允许客户根据以下信息验证最终用户的身份: 授权服务器执行的身份验证以及 获取有关最终用户的基本个人资料信息 可互操作且类似REST的方式。
API身份验证技术以各种形式广泛可用,甚至SAML 2.0都可以在这种情况下实现(需要更多基础架构),无论如何,OpenID Connect肯定可以满足所有要求。
答案 1 :(得分:-1)
解决此问题的最简单方法是经典的Session-Cookie Django directly offers this functionality。
如果您不想在服务器端保持状态,则可以查看JSON Web令牌。