首先描述一下要解决的问题:两个独立的手机应用A和B,A和B需共用一个后台用户系统,但是登陆要完全分开,且同一账号同一应用同一时刻只能有一个有效的登陆。后台使用django。
举例来说用户在应用A上注册了一个user,用户可使用同样的user登陆应用B而无需再注册。如果用户在一台手机上登陆了应用A,然后用户换一台手机再次登录应用A,则原来手机的应用A会退出登录(这和微信的账户登录原理相似)。应用B有类似的登陆逻辑。但是用户登陆应用A和登陆应用B是相互独立的。也即如果用户登录了应用A,然后用户用任意手机登录应用B,原应用A的登陆不受影响。
解决方案:
Django提供了特别方便的用户和session管理。在这里我们为应用A和B各写了一个django的后台project。
第一步,对django的用户模块做扩展,增加域用于记录user的token。
第二步,编写自己的认证后端。
一个认证后端需要实现包含以下两个方法的一个类:
第三步,在django settings中加入如下设置:
第四步,测试看看能否能像预期那样工作吧!