前后端分离项目如何写登录?

ruby
  • 52

vue+spring boot前后端分离项目。
页面的跳转由vue控制,后端要怎么写,需要写什么拦截器过滤器之类的吗,这块全部由前端控制吗,后端只写个登录controller,当账号密码传到后端,将密码加密后与数据库加密的密码进行匹配是否相同从而判断登录是否成功是这样吗。

登录完成后cookie是后端生成返回给前端保存在浏览器中,每次用户操作是不是都携带cookie信息到后端进行验证,验证过程是怎样的。

回复
阅读 3.3k
5 个回答

你需要解决的是思维问题,既然决定前后端分离了,那么就要明确前后端该怎么分配任务
后端:
一、用户登录接口,返回具有一定时效的token
二、token鉴权
三、token刷新
前端:
一、登录功能,调用接口获取token
二、缓存token
三、将token放到请求头里,以供后端鉴权
四、token失效时做相应处理,是退出重新登录,还是自动请求登录刷新token

登陆认证和授权管理,目前已经有成熟的框架,可以尝试使用shiro框架,不管是用session还是token都可以

一般做分离以后,就不需要再去考虑用session和cookie了,采用token的方式,你可以认为token就是一张已登录用户的门票,登陆成功以后,后端会返回token到前端,前端访问后端接口,带上token并且校验通过,这就说明是已登录用户,没有token或者说token校验不通过,那就返回检验失败的信息给到前端;和不分离的差别,只是不跳转页面罢了,整体来说变化不大

前端调用登录接口传入帐号密码,后端验证帐号密码正确后,保存登录信息到session,然后设置cookie返回给前端,cookie保存的是session id,前端拿到cookie后,后续的其他接口自动带上cookie,后端验证cookie获取对应session信息判断登录。cookie只是一个前端保存session id的一个载体,你完全可以不用cookie,在登录接口成功后的响应中返回一个token之类的字段作为session id返给前端,前端怎么保存这个值是前端的事情,只要后续调用接口跟上这个字段便于后端验证就行了。还有一种是后端不保存session,登录成功后生成jwt返回给前端,前端每次调接口跟上次参数,后端解析验证jwt就行了,jwt中可以包含简单的用户信息,这样后端不用自己保存session信息可以方便横向拓展

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