使用Flask/Django和javascript前端进行身份验证

问题描述:

我在努力了解flask_logindjango如何知道用户何时登录以保留访问权限?使用Flask/Django和javascript前端进行身份验证

如果我使用ReactJsAngularflask-restfuldjango/tastypie,什么被添加到未来json请求头/身体,以确保我的用户停留登录?

这是通过基于cookie的会话完成的。从the Flask documentation

除了请求对象也有叫会议第二个对象,它允许你存储从一个请求到下一个特定于用户的信息。这是在您的cookie之上实现的,并以加密方式签署cookie。

the Django docs

Django提供了匿名会话的全力支持。会话框架允许您以每个站点访问者为基础存储和检索任意数据。它将数据存储在服务器端并提取Cookie的发送和接收。 Cookie包含会话ID - 不是数据本身(除非您使用的是cookie based backend)。

因此,对服务器的请求会自动包含一个cookie,用于指示服务器随后使用该cookie来确定给定用户的会话数据应该是什么。一般来说,当Ajax请求是从客户端应用程序发送到服务器时,将包含此cookie,从而确保用户被认为是登录了这些请求。

在某些情况下,还可以(可选地)手动一个特殊标头添加到HTTP请求以指示哪个用户登录。

Securing RESTapi in flask参见一些更多的信息。

如果您使用REST服务,那么您应该看看oAuth。换句话说,它使用您附加到客户端到服务器的每个请求的令牌,最后一个可以确定哪个用户通过此令牌发送了此请求。

另一方面,您可以使用cookie或会话来确定用户状态。在这种情况下,您不需要为请求添加任何标题。

另外,我建议你为Django的这个包 - Django Rest Framework(你可以阅读更多关于令牌和身份验证通过REST)和this extension Flask。