我正在构建一个真实世界的应用程序,用户将主要从Android,iOS设备和桌面访问该应用程序.
从我的初步研究中,我已经意识到,与基于会话的身份验证相比,基于令牌的身份验证机制对于客户端 - 服务器模型更加优雅和优雅.
在Django,我发现了两种流行的方法 -
根据我的理解,选项2]是1]的扩展,除了令牌是JSON(序列化)形式.我想了解选项1]和2]之间存在的其他差异以及选择任何一个的优点/缺点.
我有一个iOS应用程序,它使用由Django REST框架驱动的API来存储,更新,从数据库中获取数据.我需要提供以下两个功能,将用户数据存储在服务器上:
我可以使用两种不同的身份验证系统:
我应该如何处理我的API?
我想在每次用户登录时撤销先前令牌.这意味着生成新令牌(或者至少更改现有模型实体的密钥).这听起来很简单,但在DRF文档中,我没有看到任何提及这种情况.文档似乎假设令牌始终保持不变.这只是一个简单的案例,还是我错过了什么?我的问题是:每次用户登录时更改令牌是否有问题?
据了解,obtain_auth_tokenview可用作登录功能.您提供凭据并获取令牌.注销会是什么?我应该在退出时删除令牌吗?什么是最佳做法?
如果删除没问题,那么如何同时处理多个客户端.比如说,用户从移动设备注销但希望保持登录网络.该Token模型目前具有OneToOne关系User.
请给我一些建议.谢谢