将PHP会话与Vue / Node.js集成

问题描述 投票:0回答:1

我有一个PHP应用程序,它验证用户,执行MySQL查询并依赖于$_SESSION cookie。

一切都工作正常,但我意识到我需要使用前端做更多,因此不得不使用Vue.js和websockets。

因此,我使用node.js作为主域localhost(为了生产)

我在localhost:8080上提供了PHP API,以便Vue.js可以与PHP Backend进行通信。

现在,这是我的问题

如何在Vue / Websocket中使用/存储$_SESSION ID并将其与每次向PHP服务器发出的请求一起发送?

我对stackoverflow做了一些研究,发现session_id()可以返回当前的Session ID,但我不知道如何将PHP与Vue集成。

注意:我正在使用Vue.js(Vue,路由器,Vuex)和socket.io与Node.js

javascript php node.js vue.js session-cookies
1个回答
0
投票

由于PHP服务器和node.JS服务器在两个不同的端口上运行,因此它们在所有浏览器中被视为不同的来源。这意味着从localhost:8080发送的cookie不会被发送到对localhost:80的任何请求。解决这个问题的一种方法是删除会话cookie上的仅http标志,这样你就可以通过javascript手动发送cookie,但如果有人设法在你的网站上运行XSS攻击,这可能会导致非常糟糕。

其他方法是1)只使用前端的两个服务器中的一个,然后使用后端与另一个后端进行通信,这意味着你可以让php仅对节点应用程序可用或者2)重新设计PHP以便使用令牌。根据我的理解,您使用php作为API,并且大多数API旨在使用令牌而不是会话,因为您通常从其他域访问API。

© www.soinside.com 2019 - 2024. All rights reserved.