求助 同一个项目不同域名怎么共享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才返回数据

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

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

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

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

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

直接用redis 多省事

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

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

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

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

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

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

3年前 评论

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