React前端服务器和PHP/Symfony后端服务器之间共享会话

2024-02-18

我有一个应用程序,由运行 React 的前端服务器和运行 PHP/Symfony 的后端服务器组成。前端的一部分是使用 twig 模板开发的(主要是用于更新内容的后台表单),并由同一后端服务器处理,一部分是使用 React 开发的,驻留在单独的前端服务器中(供公共使用)用户访问,具有更多功能)。

该系统具有三个用户角色:超级管理员(通过针对 Symfony 中配置的内存用户的表单进行身份验证)、后台员工(通过针对数据库中的用户实体的相同表单进行身份验证)和“公共用户”之类的发言,它使用应用程序的公共端,通过第三方服务进行身份验证,最终要求我们使用类似于以下的代码在我们的 API 之一内启动会话:

        $token = new UsernamePasswordToken($publicUserEntity, null, 'main', $publicUserEntity->getRoles());
    $this->get('security.token_storage')->setToken($token);
    $this->get('session')->set('_security_main', serialize($token));

用户通过三种方式成功进行身份验证,但只有在后端服务器中才能打开会话,而从前端服务器发出请求时则不会打开会话。

例如,在我使用公共用户登录后,如果我提出请求:

http://backendserverhost/api/someentity/me

该 API 加载当前会话的用户 ID 以获取用户的数据,并且我根据经过身份验证的用户获得正确的响应。

但是,如果我从前端服务器(到相同的 API 和相同的端点)发出相同的请求以获取相同的信息并显示它,它会返回一个错误,就好像它是匿名用户一样。

我应该做哪些更改才能“使用”后端服务器中打开的会话来发出前端服务器请求?


您可以为用户生成一个令牌并将其作为每个请求的参数传递。

使用 FOSOAuthRestBundle,您可以在用户模型类中定义 Accesstoken,并使用它对每个请求进行身份验证。

他们在这里有一个非常好的教程:https://github.com/FriendsOfSymfony/FOSOAuthServerBundle/blob/master/Resources/doc/index.md https://github.com/FriendsOfSymfony/FOSOAuthServerBundle/blob/master/Resources/doc/index.md

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React前端服务器和PHP/Symfony后端服务器之间共享会话 的相关文章

  • 等待在 nextjs 页面中加载 paypal 脚本

    我有这段代码应该呈现 PayPal 按钮 我在 componentDidMount 方法中加载 PayPal 按钮 componentDidMount paypal Buttons createOrder data actions gt r
  • 如何过滤反应中的状态数组?

    我有阶数减速器 它有很多状态 const initialState channel null order fetching true menu categories subcategories currentCategoryId 1 cur
  • 如何在 next.js 中使用 window.matchMedia 和样式组件主题?

    我有一个主题 const smartPhonePortrait 320 const theme isCompact typeof window undefined window matchMedia min width smartPhone
  • 使用 Laravel 返回一对多 Eloquent 关系中的最后一条记录

    假设存在一个One To Many关系 其中用户有许多工作 以及最后一条记录job表是用户当前的作业 让用户返回上一份工作的更好方法是什么 这是我尝试过的 User Class public function ejob return thi
  • 为什么 PHP 字符串连接运算符是点 (.)? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使用 PHP 向用户发送每日电子邮件通知?

    我有一个简单的用户注册表单 其中有一个复选框 如果用户的任何项目有活动 用户可以每天收到电子邮件通知 就像 Stack Overflow 有一个 通知 电子邮件受保护 cdn cgi l email protection每天都有新的答案 我
  • React - 基于计数的动态输入字段

    我想根据用户输入的计数创建文本字段 我查了很多相关问题 但找不到我想要的结果 例如 如果用户输入 5 作为输入 我想创建 5 个文本框来输入 5 个人的姓名和手机 我怎样才能实现这个目标 用于获取计数的 TextField
  • 不是有效的实体或映射的超类

    我有 2 个捆绑包 其中 1 个 CMS 捆绑包将作为父捆绑包 我在两个捆绑包中都有重复的实体 喜欢UserCMS 捆绑包中的用户我将其设为抽象类 不确定这是否是正确的选择 实际上 我想要的是在需要时扩展我的用户实体 CMS用户 abstr
  • 如何在 php 和 mongodb 中使用 findAndModify

    我想将 id 加 1 但运行 php 页面时出现问题 错误是 Fatal error Call to undefined method MongoCollection findAndModify in C wamp www 我的代码是
  • 如何获取wordpress中文件的本地路径

    由于在wordpress中 上传的文件 图像以3种不同的大小存储 从而占用内存 我有一个代码可以根据给定图像的 URL 来调整图像的大小 调整大小的代码是 img wp get image editor image url if is wp
  • 在 PHP 中扩展单例

    我正在使用一个 Web 应用程序框架 其中一部分由许多服务组成 所有服务均以单例形式实现 它们都扩展了一个 Service 类 其中实现了单例行为 如下所示 class Service protected static instance p
  • JWT 中的注销不起作用

    我是 Laravel 的新手 我安装了 JWT 并登录 所以它工作并生成了一个令牌 当我在邮递员中注销时它返回 true 但一次又一次它返回 true 和 auth gt 用户 注销后始终返回用户 这是我的代码 public functio
  • 在 SignOut() 之后使用浏览器的后退按钮允许访问安全页面 (ASP.NET MVC)

    我有一个 MVC 应用程序 它使用 Authorize 来保护私有位 当我选择 SignOut URL 时 它会将我注销 但如果我点击浏览器上的后退按钮 它会转到安全页面 甚至允许我使用该表单 该操作发生 然后显示我已退出 问题是它执行安全
  • react-dom/server 可以在客户端工作吗?

    我需要在客户端呈现顶级 html 标签 例如 结果将被注入到 iframe 中 在服务器上 我会使用renderToStaticMarkup函数来自react dom server 但仅限客户端react dom没有这个功能 Will re
  • 关闭语句后的 mysqli + xdebug 断点导致许多警告

    我有一段这样的代码 conn new mysqli host username passwd dbname stmt conn gt prepare SELECT stmt gt bind param stmt gt execute stm
  • 为什么 array_merge_recursive 不是递归的?

    我最近在我的应用程序中发现了一个由意外行为引起的错误array merge recursive 让我们看一下这个简单的例子 array1 1 gt 1 gt 100 2 gt 200 2 gt 3 gt 1000 3 gt 1 gt 500
  • 使用 PHP 上传、调整图像大小并裁剪图像中心

    我想要创建一个非常非常基本的上传 调整大小和裁剪 PHP 脚本 其功能与 Twitter 用于上传头像图片的方法相同 无论如何我最后检查过 我希望脚本拍摄任何尺寸的图像 将最短边的大小调整为 116 像素 然后裁剪顶部和底部 如果是横向 则
  • ASP.Net 使用状态服务器和缓存增加 MaxProcesses(网络花园)

    我在 IIS7 上有一个 ASP Net 网站 我计划增加 MaxProcesses 以匹配服务器上的核心数量 4 核心 64 位 Windows Server 2008 根据我的阅读 如果我增加 MaxProcesses 来创建一个网络花
  • 性能方面插值(直接插入字符串)VS串联[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 会话不会保留值并始终返回 null

    我有一个网站 它完全通过 HTTPS 即使有人尝试通过 HTTP 访问 他也会被重定向到 HTTPS 我正在使用表单身份验证 最近 我更改了一个设置以使站点更安全 之后会话不保留值并且始终返回 null 设置是

随机推荐