1

localhost に directus API と管理アプリがあり、localhost:3000 にフロントエンドの React アプリがあります。React インターフェイスから client.login メソッドを介してログインしようとすると、directus によって Cookie が localhost (その管理アプリの起点) に設定されます。しかし、実際のアプリがある localhost:3000 にこの Cookie が必要です。Cookie ヘッダーを設定すると、次のようになります。パス=/; expires=Sat, 04-Jan-2020 14:06:49 UTC; HttpOnly

また、Google コンソールには次のような警告が表示されます: http://directus.testのクロスサイト リソースに関連付けられた CookieがSameSite属性なしで設定されました。Chrome の今後のリリースでは、 と が設定されている場合にのみ、クロスサイト リクエストで Cookie を配信しSameSite=NoneますSecure

Cookie を localhost:3000 に設定する必要があります。これどうやってするの?前もって感謝します。

4

1 に答える 1

0

執筆時点で、Chrome で特定のポートの localhost に Cookie を設定できるかどうかはわかりません*

SameSiteスローされた警告については、クロスドメイン Cookie のサポートを完全に無効にするため、属性を設定することはできません。最終プロジェクトを Directus と同じ (サブ) ドメインでホストするか、代わりに認証に JWT モードを使用することができます。( を使用する場合は をclient.login設定してmode = 'jwt'ください)。

デフォルトでCookie を作成することを検討できSecureますが、Cookie を送信するために HTTPS 接続が必要になるため、localhost の開発が妨げられる可能性があります。

* Chrome (およびその他のブラウザー) は、最近、サード パーティの追跡に対抗するために、Cookie ポリシーを頻繁に更新しています。

于 2019-12-30T15:14:17.997 に答える