单帐号登陆初探

                                                            单帐号登陆redis

前言:原本想使用单点登陆这个词,后来发现,单点登陆普通是指在不一样系统中,只登陆一次;数据库

eg:楼主新人;加密

1、思路:使用一个能够共用的存储来储存登陆信息,保证一对一的关系(这里使用redis,没有使用数据库);token

2、实现:内存

    一、某帐户第一次登陆时候,生成token,设置过时时间(通常能够设置1个月),而后在redis中,设置2个key-value(一、token为key,userId为value;二、userId为key,token为value;若是须要前缀后缀的话,也加上);同时,客户端储存token;博客

    二、使用相关功能(须要登陆的)时候,带上token(能够放header中,也能够加密进去);根据token能够得到userId;登录

    三、另外一个帐号登陆,生成token,照着步骤1,可是要把已经存在的key-value(就是1生成的)给替换掉;总结

    四、这个时候,1步骤产生的token,userId已经不存在;再使用相关功能时候,因为userId不存在,因此须要再次登陆,即不能继续操做,须要从3再操做;周而复始的,只能一我的(设备)使用帐号;单点登录

3、缺点数据

    一、非实时性,不是第二个登陆,第一个马上被挤下去(能够经过推送完成?);

    二、须要维护2个key-value;

    三、使用redis,因为在内存中,可能会发生意外状况(忽然断电啥的);

    四、这里也能够考虑储存设备号,保证一个设备登陆(还没有尝试)。

    五、他人能够经过获取token来登陆(只能防一下不懂的人。。)。

4、总结

    这是我第一次写博客,写的很差,也只是忽然想到了什么,感受不记录下来很容易忘记。若是能帮到一些人,那是极好的。

    其余漏洞和更好的方案请留言;很是感谢你们评论,也很开心和你们一块儿讨论。

相关文章
相关标签/搜索