【问题标题】:Django Rest Framework Session vs Token AuthenticationDjango Rest 框架会话与令牌身份验证
【发布时间】:2014-04-14 22:03:49
【问题描述】:
我正在使用 DRF,并且我启用了会话身份验证,以便我可以在浏览器中查看可浏览的 API。在我的移动应用程序中,我正在使用令牌身份验证。我只是好奇,在这种情况下,会话身份验证与令牌身份验证有何不同?在我看来,它们或多或少是相同的,因为使用基于会话的身份验证,会话 ID 而不是令牌 ID 存储在 cookie 中并以相同的方式使用。谁能解释的更好?
【问题讨论】:
标签:
authentication
django-rest-framework
【解决方案1】:
会话和 cookie 主要用于浏览器,浏览器将负责将 cookie 与每个请求一起发送到服务器。这就是为什么 CSRF 保护仅默认启用会话身份验证的原因。另一方面,令牌身份验证很可能与非浏览器客户端一起使用,它存储身份验证令牌并将其与每个请求一起发送到标头中。此令牌不一定通过将凭据交换为类似于会话身份验证中发生的令牌来获得。可能有这样一个用例,管理员生成这些令牌并将其交给将调用您的 API 的其他系统客户端,显然该客户端不需要用户名和密码即可将其交换为令牌。