使用Cognito在lambda中部署时,如何保持Django REST API无状态且无cookie和会话

时间:2019-04-18 13:36:35

标签: lambda django-rest-framework

我正在使用Zappa将django REST API部署到AWS Lambda。为了进行身份验证,我想在我的角度式Web应用程序,移动应用程序和django REST API之间使用JWT令牌。如何使django REST API保持无状态,而没有任何会话或cookie?

1 个答案:

答案 0 :(得分:0)

我不是Django开发人员,但无状态应用程序的身份验证应分为两部分。

  1. 开发新的身份验证API,成功登录后将JWT令牌返回给客户端。此JWT令牌的主体中可能包含用户个人资料(以base64编码),以供用户输入屏幕。该令牌是使用Django后端中定义的密钥生成的(因此您需要保护此密钥)

  2. 每个来自Angular应用的调用都需要传递JWT令牌作为Authorization标头。 Django后端必须检查此JWT令牌,验证JWT标头和有效负载,返回该用户的相关数据(通过从JWT主体中提取用户个人资料)。通过验证jwt标头,您将知道令牌是由后端应用程序生成的,而不是由其他应用程序生成的。 (如果Java或NodeJS可以通过中间件完成,则使用Spring Security Filter)