Django Rest框架会话与令牌认证

时间:2014-03-11 10:41:47

标签: authentication django-rest-framework

我正在使用DRF,并且我启用了会话身份验证,以便我可以在浏览器中查看可浏览的API。在我的移动应用程序中,我正在使用令牌身份验证。我只是很好奇,在这种情况下,会话身份验证与令牌身份验证有何不同?在我看来,它们或多或少是相同的,因为使用基于会话的身份验证,会话ID而不是令牌ID存储在cookie中并以相同的方式使用。任何人都能更好地解释一下吗?

1 个答案:

答案 0 :(得分:13)

会话和Cookie主要用于浏览器,浏览器负责向服务器发送每个请求的cookie。这就是为什么CSRF保护仅在默认情况下启用会话身份验证。另一方面,令牌身份验证很可能与非浏览器客户端一起使用,其中存储身份验证令牌并将其与头中的每个请求一起发送。此令牌不一定通过交换令牌的凭证来获得,类似于会话身份验证中发生的情况。可能有一个用例,管理员生成这些令牌并将其交给将调用您的API的其他系统客户端,显然该客户端不必拥有用户名和密码来交换令牌。