routeNrequest

文章目录

Route intercept

这里只是想记录一下对 401 的请求拦截与路由拦截区别,之前一直觉得在请求拦截 401 与用户未登录状态即可,最近发现在路由侧也加上未登录校验,可以提前跳转到登录页,同时不会再浏览器历史记录中添加上需要登录的页面路由,可以方便用户使用浏览器的回退功能回到上一页。

最近遇到这个场景后,我觉得两边都加上是必要的。

场景

在一个类电商网站首页,存在几个推荐商品,它们上面有收藏与加购按钮,同时页面顶部导航存在跳转到收藏列表与购物车列表的按钮,并且首页是不需要鉴权的。

先假设不在路由层做登录态校验。

情况 1

当操作商品的收藏与加购按钮时,未登录下会发生 401 请求,同时跳转到登录页,并带上重定向的参数。

此时用户操作回退,可以正常回到首页。

情况 2

当操作商品的收藏列表与购物车列表按钮时,未登录下会发生 401 请求,同时跳转到登录页,并带上重定向的参数。

此时用户操作回退,无法回到首页,因为已经跳转到了对应的列表页面,需要权限,只要回退了,就会回到需要权限的页面,之后又会发起 401 请求自动跳转到登录页。

情况 2 就是对路由做权限的一个很大区别,看是否需要这个针对用户友好的体验吧。

另外如果对路由做登录校验,可以在发起请求前就跳转到登录页,可以减少等待时间,也可以减少请求次数,同时体验上更丝滑,无需任何等待就到了下一页。

分享到:

评论完整模式加载中...如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理