文档章节

单账号登录初探

MethodMe
 MethodMe
发布于 2016/12/07 17:31
字数 558
阅读 1003
收藏 23

                                                            单账号登录

前言:本来想使用单点登录这个词,后来发现,单点登录普通是指在不同系统中,只登录一次;

eg:楼主新人;

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

二、实现:

    1、某账户第一次登录时候,生成token,设置过期时间(一般可以设置1个月),然后在redis中,设置2个key-value(1、token为key,userId为value;2、userId为key,token为value;如果需要前缀后缀的话,也加上);同时,客户端储存token;

    2、使用相关功能(需要登录的)时候,带上token(可以放header中,也可以加密进去);根据token可以获得userId;

    3、另一个账号登录,生成token,照着步骤1,但是要把已经存在的key-value(就是1生成的)给替换掉;

    4、这个时候,1步骤产生的token,userId已经不存在;再使用相关功能时候,由于userId不存在,所以需要再次登录,即不能继续操作,需要从3再操作;周而复始的,只能一个人(设备)使用账号;

三、缺点

    1、非实时性,不是第二个登录,第一个立刻被挤下去(可以通过推送完成?);

    2、需要维护2个key-value;

    3、使用redis,由于在内存中,可能会发生意外情况(突然断电啥的);

    4、这里也可以考虑储存设备号,保证一个设备登录(尚未尝试)。

    5、他人可以通过获取token来登录(只能防一下不懂的人。。)。

四、总结

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

    其他漏洞和更好的方案请留言;非常感谢大家评论,也很开心和大家一起讨论。

© 著作权归作者所有

上一篇: 抢红包的问题
下一篇: 扫码登录
MethodMe
粉丝 8
博文 3
码字总数 1767
作品 0
朝阳
程序员
私信 提问
加载中

评论(7)

柴九
可以把useeid放在token里,然后userid为键,token为值。
访问时拆分token获取userid,然后比对userid映射的值是否等于tolen,不是就强迫退出。
登陆时以userid为键tiken为值,之前登陆的tojen自然就失效了
MethodMe
MethodMe 博主

引用来自“小兵成长记”的评论

可以,总结的很好

谢谢支持。
魔法王者安琪拉
魔法王者安琪拉
可以,总结的很好
MethodMe
MethodMe 博主

引用来自“lisa1981”的评论

token存入user表里可持久化,不是更好吗?

nosql的速度要远快于sql,这个是选择存redis的一个原因。
l
lisa1981
token存入user表里可持久化,不是更好吗?
MethodMe
MethodMe 博主

引用来自“Monee”的评论

redis内存中?不完全是,也有持久化的。

嗯嗯,对,可以写入写出磁盘,也可以按照步骤aof。
monee1988
monee1988
redis内存中?不完全是,也有持久化的。
Web安全系列(二):XSS 攻击进阶(初探 XSS Payload)

什么是 XSS Payload 上一章我谈到了 XSS 攻击的几种分类以及形成的攻击的原理,并举了一些浅显的例子,接下来,我就阐述什么叫做 以及从攻击者的角度来初探 XSS 攻击的威力。 在黑客 XSS 攻击...

梁音
2018/09/13
0
0
外呼系统APP外呼软件手机电销软件拨号销售软件功能设计

外呼系统APP外呼软件 1 系统概述 该软件系统设计功能主要为贷款、投资、资产管理等金融中介公司提供方便快捷的线上管理各类资源的一款应用软件工具。 可根据不同职位的账号登录APP来管理电话...

scau_one
03/07
0
0
SQLSERVER权限异常小记

初步怀疑是 ssms 的哪个组件损坏了, 那就用命令打开吧.熟练的新建查询, 快速的敲下了如下代码: 居然还是报错!无法在当前安全上下文下访问数据库,如图: 竟然提示没有权限.my god!我可是用的 ...

尔忽2019
01/12
0
0
单点登录与集群

需求描述: 工作类型: Web应用开发 技能要求: Java 预计完成时间: 2016-06-30 驻场要求: 需定期到[广东省-广州市]驻场 要求提供发票: 增值税专用发票 需求详情: 1) 现状 a) 目前外部网...

13078878620
2016/05/18
59
0
springmvc单点登录

原理: 用户A使用账号a在浏览器当中登录,然后用户B在另外一台电脑上的浏览器登录账号a,当用户B登录验证成功时,将会触 发登录监听类,在监听类当中判断出账号a已经被用户A登录,就把用户A的...

危灬灬笑
2016/10/29
605
1

没有更多内容

加载失败,请刷新页面

加载更多

golang-字符串-地址分析

demo package mainimport "fmt"func main() {str := "map.baidu.com"fmt.Println(&str, str)str = str[0:5]fmt.Println(&str, str)str = "abc"fmt.Println(&s......

李琼涛
今天
4
0
Spring Boot WebFlux 增删改查完整实战 demo

03:WebFlux Web CRUD 实践 前言 上一篇基于功能性端点去创建一个简单服务,实现了 Hello 。这一篇用 Spring Boot WebFlux 的注解控制层技术创建一个 CRUD WebFlux 应用,让开发更方便。这里...

泥瓦匠BYSocket
今天
6
0
从0开始学FreeRTOS-(列表与列表项)-3

FreeRTOS列表&列表项的源码解读 第一次看列表与列表项的时候,感觉很像是链表,虽然我自己的链表也不太会,但是就是感觉很像。 在FreeRTOS中,列表与列表项使用得非常多,是FreeRTOS的一个数...

杰杰1号
今天
8
0
Java反射

Java 反射 反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的 Class,Class 类 用于表示.class 文件(字节码)) 一、反射的概述 定义:JAVA 反射机制是在运行状态中,对于任...

zzz1122334
今天
5
0
聊聊nacos的LocalConfigInfoProcessor

序 本文主要研究一下nacos的LocalConfigInfoProcessor LocalConfigInfoProcessor nacos-1.1.3/client/src/main/java/com/alibaba/nacos/client/config/impl/LocalConfigInfoProcessor.java p......

go4it
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部