我正在为移动和Web环境构建服务器,我希望将会话身份验证与令牌身份验证一起使用。然而,这些似乎彼此不一致。 我对两种方案中的登录都有不同的看法。
如果我以可浏览API内的用户身份登录,然后为其他用户发送令牌登录请求,则服务器会抱怨没有CSRF令牌。但是,如果我退出,突然没有问题。
我不确定在实现前端后登录会有多严重,登录来自不同的设备,但到目前为止看起来不太好。
如果传递了正确的Authorization: Token <token>
标头,是否知道如何停止要求CSRF令牌?或者对我的问题有不同的解决方案?
答案 0 :(得分:1)
DRF的默认SessionAuthentication
后端的构建方式是,如果您在请求中提供有效会话,它将启用CSRF验证。有两种可能的解决方案:或者不要同时使用两种身份验证方法(在请求中发送有效会话cookie时不使用令牌)或者通过将TokenAuthentication
后端置于SessionAuthentication
之上来确定令牌身份验证的优先级} DEFAULT_AUTHENTICATION_CLASSES
设置。