前后端分离后实现登录验证

方案一: auth.basic

  1. 给需要登录的路由添加auth.basic中间件

  2. 前端登录时采用手动认证, Auth::attemp. 成功则返回用户实例对象.

  3. 前端收到返回的用户实例对象, 存储到cookie中.

  4. 以后访问带有auth.basic的路由时自动带上authentication头部

优点

  • 无状态

  • 不用管理后端的登录状态

缺点

  • 用户名和密码在很多请求的头部出现

解决方法

  • 全站https

方案二: 手动登录

准备工作:
    1. user表中添加api_token字段

    2. 注册时为用户添加api_token

  1. 给需要登录的路由添加auth和api中间件

  2. 前端登录时采用手动认证, Auth::attemp. 成功则调用Auth::login()手动登录. 并返回用户实例对象.

  3. 前端收到返回的用户实例对象, 存储到cookie中.

  4. 以后访问带有auth和api的路由时带上Authentication: "Bearer ..."头部

  5. 退出登录时调用Auth::logout()

遇到的问题

  • auth中间件默认的行为与预期不符合, 原本应该返回401错误, 实际会自动跳转到login页面(未登录)或者home页面(登录后)

sodasix
修改的评论也不能少于六个字哦!