文档章节

前后端分离的项目,如何解决登录问题

小致dad
 小致dad
发布于 2017/04/10 09:12
字数 341
阅读 17458
收藏 107

方案一:使用token

  1. 前端把accountpassword,提交到服务端的登录api
  2. 服务端验证正确后,生成一个token,并把tokenuserId,存在缓存里(推荐redis数据库),然后把token返回给前端。
  3. 前端每次的请求头中带token,这样就能够轻松的实现

方案二:使用cookie

  1. client发送username和password到server

  2. server验证成功后, 写cookie到client,然后返回ok的json, 其中cookie的key要存储在redis中,value就是用户信息, 并且要设置key的超时时间,如:60分钟

  3. client收到ok后, 进行相应的业务操作, 以后每次请求server都会自动带上cookie, 不用你写代码

  4. server端的filter(你肯定用filter来实现)中会每次验证传过来的cookie的key在redis中是否存在, 有就代表登录成功过可以操作, 没有就返回错误标识注意: 在登录成功后, 每次调用服务器接口时候, 都要为redis的key进行续期,如60分钟

  5. 当redis的key超过60分钟, 自己会删除这个key, 那么再次请求server时, 就会收到需要登录的返回值

  6. 当用户主动退出系统的时候, 也要在server中删除redis的key

 

© 著作权归作者所有

共有 人打赏支持
小致dad
粉丝 152
博文 539
码字总数 580673
作品 0
济南
技术主管
私信 提问
加载中

评论(28)

c
cyrus_hw
hi 请教个场景, 前后端分离 如果支持第三方登录(微信 微博 qq等)的话,使用jwt 是不是前端那边需要开放一个用户登录后接收token ref_token的回调? 这样如果第三方网站恶意跳转呢
moxiaole
moxiaole

引用来自“jdk2010”的评论

如何防止token篡改,例如,用户A,使用用户B的token,那操作算谁的

引用来自“OSC_hZGxcN”的评论

没想到直接解决的办法,但是token加有效期可以解决吗?
设定一个算法,生成的 token 暗含 account 信息,同时可以从 token 中解析出 account 信息。破解了这个算法才可以实现用户伪造。
imxae
imxae
为什么不用oath2
MGL_TECH
MGL_TECH
难道不是一二结合吗?拿到token,保存完缓存,并把给客户端返回的token设置想到cookie里不行?
shijunti
shijunti
我是每个用户随机生成一段32位字符串,cookie保存,如果不自动登录就session
月之舞步
月之舞步

引用来自“dingdayu”的评论

引用来自“月之舞步”的评论

引用来自“程序兵”的评论

需要这么麻烦吗,登陆完成后直接把用户id用session存起来,每次请求都判断session是否过期,过期了就提醒前端重新登录。

引用来自“shijacky”的评论

你做的系统分分钟被黑
你把黑的过程分享下。如果session被黑了,那么token又能安全到哪里去。。

session是后端,这里是需要前端告诉后端取谁的session。。。。你是搞前端的吧?
你到底懂我说的是什么吗?前后端分离用token不用session难道是因为安全问题???????我只不过顺着那人黑session的牛逼样子说了下去。让他说出黑的过程。
蛐蛐未加V
蛐蛐未加V
你说的前后端分离是哪种? 前端页面和后台 单独部署 还是 前后端交互只使用ajax的这种?
石头捡到布
石头捡到布

引用来自“程序兵”的评论

需要这么麻烦吗,登陆完成后直接把用户id用session存起来,每次请求都判断session是否过期,过期了就提醒前端重新登录。
刚那回复,理解错了! 自己的评论不允许删除,我擦
石头捡到布
石头捡到布

引用来自“程序兵”的评论

需要这么麻烦吗,登陆完成后直接把用户id用session存起来,每次请求都判断session是否过期,过期了就提醒前端重新登录。
前后端分离的,你保存到session有什么用?
石头捡到布
石头捡到布
上次做了个简单的前后端分离的项目,直接是差不多用的你第一种方式,用户登录保存用户id和token到redis,然后设置有效时间为30分钟,每次访问一个接口都会重置有效时间,但是提到的用户a拿用户b的token这个直接忽略了,毕竟小项目!
Spring Boot + Vue前后端分离开发实战

前后端分离是一种开发方式,已经变得越来越流行了,越来越多的企业都开始往这个方向靠拢。那么,为什么要选择前后端分离呢?前后端分离对实际开发有什么好处呢? 前后端分离可以让专人做专事,...

尹吉欢
2018/06/10
0
0
node使用JsonWebToken 生成token,完成用户登录、登录检测

最近在用node做后台的登录,检测登录功能。在本地使用session可以成功,但是放服务器后发现session失效了,每次请求session都会变化,着了很久原因。原来,自己项目是前后端分离的,前端调用...

taoland
2018/08/12
0
0
前后端分离 | 关于登录状态那些事

背景 登录是一个网站最基础的功能。有人说它很简单,其实不然,登录逻辑很简单,但涉及知识点比较多,如: 密码加密、cookie、session、token、JWT等。 我们看一下传统的做法,前后端统一在一...

小忽悠
2018/10/12
0
0
前后端分离跨域问题

公司第一次采用前后端来进行后台开发,在开发过程中出现了跨域问题,被折磨的快要疯了,是这样,后台登录完成后将用户信息保存在session中,再调另一个接口获取session中的用户信息,大概是因...

一个大苹果
2017/12/18
342
3
前后端分离--拿起node反向代理的武器(全记录)

做个勇往直前的人,做个勇往直前的前端 文/ziven 标题图/来自网络 前后端分离是个很重要的概念,尤其是今天的大前端时代。jsp,html嵌套在java web项目中似乎显得比较古老而厚重。当我们处在...

ziven先生
2017/06/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

js之正则表达式修饰符/ig

正则表达式中/i,/g,/ig,/gi,/m的区别和含义 /i (忽略大小写) /g (全文查找出现的所有匹配字符) /m (多行查找) /gi(全文查找、忽略大小写) /ig(全文查找、忽略大小写) 修饰符 修饰符 描述 i ...

youfen
30分钟前
1
0
druid架构及原理

应用场景 设计一个系统来预估未来一年的广告流量,不是总流量,是任意时间段任何定向(Targeting)条件约束情况下的流量。定向条件有近百种(内容类别,设备平台,用户地域,用户人口属性等),...

hblt-j
37分钟前
3
0
solr使用

solr 7.3安装配置、中文分词配置 solr7.4 配置ikanalyzer和自带的中文分词器

微小宝
46分钟前
1
0
常用的HTTP方法有哪些?

1、常用的HTTP方法有哪些? GET: 用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器 POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方...

晚风0623
57分钟前
2
0
windows系统使用技巧

windows使用一段时间,系统盘剩余空间会变小,如下目录可以删除,清理出一些物理空间。 1.将桌面文件移动到其他硬盘。 2.【下面目录下的文件都是可以删除的】 C:\Users\dell\AppData\Local\...

硅谷课堂
58分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部