Laravel对接Apple登录跳转时CORS跨源限制及Cookie SameSite警告如何解决
解决方案
- 首先确认你的站点运行在HTTPS环境下:
SameSite=None属性必须搭配secure标记生效,只有HTTPS协议下浏览器才会接收带secure属性的Cookie,本地HTTP开发环境无需配置SameSite=None,临时改为Lax即可规避报错。 - 修正
session.php配置项,需要同时配置如下参数:'same_site' => 'none',注意值为小写字符串,不要设置为null或其他无效值'secure' => env('SESSION_SECURE_COOKIE', true),生产环境强制开启,本地HTTP开发时可临时设为false同时把same_site改为lax- 保持
httponly参数开启即可,不影响跨站Cookie传输
- 将Apple登录回调路由加入CSRF校验排除列表:Apple登录回调为跨站POST请求,默认会触发Laravel的CSRF校验拦截,你需要在
app/Http/Middleware/VerifyCsrfToken.php文件的$except数组中添加你的回调路由路径,示例:protected $except = [ '/auth/apple/callback', // 其他需要排除CSRF校验的路由 ]; - 确认Apple开发者后台配置的重定向URI与你代码中填写的回调地址完全一致,协议头、域名、路径均不能有出入,否则依然会触发跨源策略拦截。
内容的提问来源于stack exchange,提问作者Rose Riyadh
相关产品推荐
相关产品推荐

