求助 同一个项目不同域名怎么共享session

1. 运行环境

windows
apachae

1). 当前使用的 Laravel 版本?

laravel8

2). 当前使用的 php/php-fpm 版本?

PHP 版本:7.3

2. 问题描述?

目前有三个域名
www.shop.com
admin.shop.com
api.shop.com
配置都改为了redis后获取session_id和session的内容,都没有实现共享效果


上面是www.shop.com的session_id
下面是api.shop.com返回的session_id


都是在同一个项目下通过路由改的不同域名


该配置的都配置了,但是session的内容还是无法共享

3. 您期望得到的结果?

www和api域名的登录session共享,www域名下登录后,api域名需要获取到登录的session才返回数据

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

1.看php文档cookie相关的,path domain的配置; 2.传参数加上session_id,后端获取并将session_id设为传的值

2年前 评论
cccq (楼主) 2年前
讨论数量: 14

1.看php文档cookie相关的,path domain的配置; 2.传参数加上session_id,后端获取并将session_id设为传的值

2年前 评论
cccq (楼主) 2年前

直接用redis 多省事

2年前 评论
cccq (楼主) 2年前

最优解的放弃原生session机制,自己实现token认证,每个用户登录后都生成token放在数据库里。前端每次传这个token来做认证。
这样的api机制不仅跨域名访问,以后也可以给其他终端,比如手机端访问。

2年前 评论
cccq (楼主) 2年前

cookie 配置中把 domain 写跟域即可。

2年前 评论
cccq (楼主) 2年前
游离不2 2年前
2年前 评论
cccq (楼主) 2年前
MArtian (作者) 2年前
cccq (楼主) 2年前

session 有很多驱动,有file,还有mysql,redis,不同域名共享一个session,肯定后者更合适

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!