前端如何保存登录状态啊? 好让网站头部呈现的信息不一样?

阿飞i
  • 629

1.采用前后端分离的开发模式. 前后台并行开发. 后台提供接口,angular去调用。
2.网站有访问权限, 必须要登录才能访问某些页面。
3.网站头部,根据登录是否来呈现不同的信息. 比如登录后:欢迎 (xx用户名).
4.后台每个接口都判断了用户是否登录.
5.我的做法: 用户登录后. 我会在sessionStorage里面存一个key. 然后在路由文件里$stateChangeSuccess判断是否有这个key,没有的话就$state.go('login')去登录。

现在的问题是.sessionStorage不能浏览器多个标签共存.就是用户其实已经登录了,然后用新标签打开页面.这时候$stateChangeSuccess判断没有这个key就跳到登录login页面去了.

sessionStorage不能多标签共存. localStorage又必须要手动清除...

大家通常是怎么做的啊?

回复
阅读 4.2k
2 个回答

cookie不能标识是否登录,后端session与前端cookie匹配认为是一个会话,没登录也有session退出登录也有session,而且session有超时,所以无法用session/cookie去判断。你这个只是调数据时判断是否登录就可以了,写个全局xhr事件/全决ajax拦截器,如果后端返回未登录,你就跳转到登录页面。至于显示用户信息,那后端提供给接口就可以了。

cookie啊,这不是烂大街的技术了吗?其实localStorage也挺不错的。不喜欢sessionStorage,还不如cookie呢。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏