前端登陆问题

147 阅读1分钟

前端登陆,如何实现鉴权

token验证登陆

  • 客户端使用用户名+密码请求登录
  • 服务端收到请求,验证用户名和密码
  • 验证成功后,服务端会签发一个token,再把这个token发送给客户端
  • 客户端收到token,存储起来,放在cookie或者localstorage里
  • 客户端每次向服务端请求资源时带着token
  • 服务端收到请求,验证token是否成功
最常用的健全时JWT方案(JSON WEB TOKEN)

JWT对象通常由三部分构成

  • Headers:包括类别(typ)、加密算法(alg)
  • Claims:包括需要传递的用户信息
  • Signature:根据alg算法与私有秘钥进行加密得到签名字串
前端设计

使用vuex保存全局状态,做数据持久化

单点登录

背景:一个大型系统里可能包含多个子系统,用户在操作不同系统时,需要多次登录,很麻烦。 前提:同域名下的SSO(主域名相同),例如:某网站域名为www.aaa.com, 还存在两个相同主域名下的子系统 www.bbb.aaa.comwww.ccc.aaa.com,就可以实现SSO

  • 客户端:用户访问某个子系统时,如果没有登录,则跳转到SSO认证中心提供的登陆页进行登录
  • 服务端:登录认证后,服务端把登录用户信息存在session中,并附加在响应头set-cookie字段中,设置cookie的Domain为 .aaa.com
  • 客户端:再次发请求时,携带主域名Domain下的cookie发送给服务器,服务器通过cookie验证登录状态