簡體   English   中英

VUE前端和PHP后端/Api的問題/問題

[英]Problem / Question with VUE Frontend and PHP Backend / Api

首先對不起我的英語,因為它不是我的母語。 希望它足夠清楚。

我們正在開發一個用戶系統,用戶在登錄后可以執行各種操作,例如加入活動、更改他的個人資料數據、在留言板中留言以便其他用戶可以閱讀和回答等等。我們的想法是有兩個不同的“項目”,一個用於后端(幾乎已經使用 PHP 作為 CRUD Api 完成)和帶有 VUE JS 的前端。

這兩個項目將托管在同一台服務器上,因此一旦部署,我們將不會有任何 CORS 或相關問題。

目前后端使用 PHP Session (如果真的需要,可以花時間更改身份驗證系統)來知道用戶已登錄。一直在使用 Z03D476861AFD384510F2CB80CCFA8511 進行測試,一切似乎都按預期工作。

我的問題在於如何處理用戶會話,在開發過程中知道用戶已登錄等。 一旦項目完成並部署在同一台服務器上,使用 PHP Session 或使用 Z1D1FADBD9150349C135781140FFFFEE9DZ / Z5967B56E538471 將沒有問題。 但是在開發過程中,我認為如果不先構建前端就無法測試前端,因為 API 將在已經部署的服務器上或在 xampp 本地部署,這兩種方式都給我帶來了很多麻煩,因為:

PHP SESSION: As the php session is domain exclusive, each request from the frontend to the backend, as long as they are not on the same server, will be taken as different sessions.

JWT: JWT 可能是一個解決方案,但前提是將令牌存儲在本地存儲、會話存儲或不是 httponly 的 cookie 上,因為如果我希望后端設置一個帶有令牌的 httponly cookie,由於不同的服務器,該 cookie 在開發過程中將不可用,不讓我在不構建前端並將其部署到主機或將其復制到 xampp 的情況下正確測試前端。 關於localstorage、sessionstorage或者普通的cookies,看了很多之后,因為可能引起的XSS,CSRF等安全問題,我放棄了它們。

總而言之,我想說最好的主意是使用 php session 因為這兩個項目將托管在一起,但我不知道如何測試前端而不必構建它並上傳它或將 dist 文件夾移動到 php session

感謝您的寶貴時間,希望您能啟發我

設置 php 響應標頭以允許憑據,如Talal在評論中建議的那樣:

header("Access-Control-Allow-Origin: http://localhost:8080");
header("Access-Control-Allow-Credentials: true");

在 axios 調用中傳遞參數 withcredentials: true

this.axios.get(URL, {withCredentials: true })

將解決大多數 CORS 問題,服務器將在響應中發送 session cookie,但由於未設置 SameSite 蜜蜂(Chrome 將其設置為 Lax 作為默認值),瀏覽器仍會拒絕保存 cookie。 解決了這個問題:

ini_set('session.cookie_secure', "1"); 
ini_set('session.cookie_httponly', "1"); 
ini_set('session.cookie_samesite','None');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM