Loading

Laravel Sanctum SPA cookie&session 验证实践

参考文档

https://learnku.com/docs/laravel/8.x/sanctum/9421#spa-authentication

实践中遇到的问题

spa客户端死活不添加cookie分析

1.客户端使用的请求如:axios,没有启用跨域cookie

axios.defaults.withCredentials = true;

2.服务端没有将跨域配置好,需要确保

Access-Control-Allow-Credentials:true

3.服务器 config\sanctum 配置中的 stateful 没有配置。应该配置为客户端的所在域名

'stateful' => ['localhost:3000']

4.客户端使用的是IP的形式:如 127.0.0.1
经过我的测试以下写法无效(客户端:127.0.0.1:3000,服务端:127.0.0.1:8888)的情况

'stateful' => ['127.0.0.1:3000']

5.客户端的域名是:localhost:3000,而服务端的域名是:127.0.0.1:8888 域名不同无法设置 cookie。也就是客户端必须与服务端域名相同

总结

不要用Sanctum 的SPA cookie认证。麻烦的一批,域名不对就会炸,稍微配置偏差一点就炸。还是老老实实的用 API令牌认证模式

posted @ 2021-08-03 21:41  ZJH_BLOGS  阅读(380)  评论(0编辑  收藏  举报