質問: まず第一に、私の母国語ではないので、私の英語は申し訳ありません。その明確さを十分に願っています。 ログイン後、イベントへの参加、プロフィールデータの変更、他のユーザーが読んで回答できるようにメッセージをボードに残すなど、さまざまなことができるユーザーシステムを開発しています。さまざまな「プロジェクト」。1つはバックエンド(PHPを使用してCRUD Apiとしてほぼ実行済み)用で、フロントエンドはVUEJS用です。 両方のプロジェクトは同じサーバーでホストされるため、一度デプロイすると、CORSや関連する問題は発生しません。 現時点では、バックエンドはPHPセッションを使用して(本当に必要な場合は認証システムの変更に時間を費やす可能性があります)、ユーザーがログインしていることを確認します。postmanでテストしており、すべてが意図したとおりに機能しているようです。 私の問題は、ユーザーセッションの処理方法、開発中にユーザーがログインしていることを知る方法などにあります。プロジェクトが完了して同じサーバーにデプロイされると、PHPセッションの使用やJWT / Cookieの使用に問題はありません。しかし、開発中***は、APIがすでにデプロイされているサーバー上にあるか、xamppのローカルにあるため、フロントエンドをビルドせずにテストする***方法はありません。どちらの方法でも、次の理由で多くの問題が発生します。 **PHPセッション:** phpセッションはドメイン専用であるため、フロントエンドからバックエンドへの各リクエストは、同じサーバー上にない限り、異なるセッションとして扱われます。 **JWT:** JWTは解決策になる可能性がありますが、ローカルストレージ、セッションストレージ、またはhttponlyではないCookieにトークンを保存する場合に限ります。これは、バックエンドでhttponly cookieを設定する場合、サーバーが異なるために開発中にそのcookieを使用できないためです。 、フロントエンドをビルドしてホストにデプロイするか、xamppにコピーせずに、フロントエンドを適切にテストさせないでください。 localstorage、sessionstorage、または通常のCookieについては、たくさん読んだ後、XSS、CSRFなどのセキュリティ上の問題が発生する可能性があるため、それらを破棄しました。 要約すると、両方のプロジェクトが一緒にホストされるため、phpセッションを使用するのが最善のアイデアだと思いますが、フロントエンドをビルドしてアップロードしたり、distフォルダーをxamppに移動したりせずに、フロントエンドをテストする方法がわかりません。 あなたの時間をありがとう、そしてあなたが私を啓発することができることを願っています
回答: ### 答え : #### 解決: Talalがコメントで提案したように、資格情報を許可するようにphp応答ヘッダーを設定します。 ``` header("Access-Control-Allow-Origin: http://localhost:8080"); header("Access-Control-Allow-Credentials: true");Copy code ``` param withcredentialsを渡すaxios呼び出しで:true ``` this.axios.get(URL, {withCredentials: true })Copy code ``` CORSの問題のほとんどを解決し、サーバーは応答でセッションCookieを送信しますが、SameSiteビーイングが設定されていないため、ブラウザーはCookieの保存を拒否します(ChromeはデフォルトでLaxに設定します)。これを解決しました: ``` ini_set('session.cookie_secure', "1"); ini_set('session.cookie_httponly', "1"); ini_set('session.cookie_samesite','None');Copy code ```