方案一: auth.basic
给需要登录的路由添加auth.basic中间件
前端登录时采用手动认证, Auth::attemp. 成功则返回用户实例对象.
前端收到返回的用户实例对象, 存储到cookie中.
以后访问带有auth.basic的路由时自动带上authentication头部
优点
无状态
不用管理后端的登录状态
缺点
用户名和密码在很多请求的头部出现
解决方法
全站https
方案二: 手动登录
准备工作:
user表中添加api_token字段
注册时为用户添加api_token
给需要登录的路由添加auth和api中间件
前端登录时采用手动认证, Auth::attemp. 成功则调用Auth::login()手动登录. 并返回用户实例对象.
前端收到返回的用户实例对象, 存储到cookie中.
以后访问带有auth和api的路由时带上Authentication: "Bearer ..."头部
退出登录时调用Auth::logout()
遇到的问题
auth中间件默认的行为与预期不符合, 原本应该返回401错误, 实际会自动跳转到login页面(未登录)或者home页面(登录后)