ホーム>source

私が間違っていても私を修正しますが、Cookieは特別な Set-Cookie: ですヘッダーですねたぶん私は何かが足りないのですが、それはいつも私の場合のように思えました。 Rails APIアプリケーションを設定し、HTTPOnly Cookieの送信をサポートしたい場合(たとえば、ヘッダーも、CORSとクライアントセットアップのすべてを持っていると想定しているなど)、これを正しく実行できるはずですか?

基本的に、私の質問は次のとおりです。

  1. ActionDispatch::Cookies を復活させる私のミドルウェアに include ::ActionController::Cookies を追加私のアプリケーションコントローラーでは、APIアプリケーションの目的を完全に無効にしますか?
  2. 含まれている場合、ヘッダーからHTTPOnly Cookieを手動で送信できますか?
  3. その場合、Cookieヘッダーを手動で管理するのははるかに面倒ですか? HTTPOnlyの更新トークンを1つ送信するだけの場合、Cookieミドルウェアを手動で処理する必要がないので、私が得ているものは何ですか?
あなたの答え
  • 解決した方法 # 1

    したがって、ミドルウェアを追加したり、Cookieのクラスを含めたりする必要はありません。 reponse.set_header を使用できます  Cookieを送信します。ただし、これで送信できるのは1つの Set-Cookie だけです  headerは Set-Cookie で設定した最後のヘッダーを上書きするため  キーとして。代わりに response.set_cookie にアクセスできます  これにより、各 set_cookie に複数のcookieを設定できます  コール。 set_header を使用して手動で送信していたヘッダーの値に追加する必要がある設定可能なオプションもいくつか付属しています 。

    Cookieを送信できるようにした例を次に示します。

    ウィズウィズ
    

    他のオプションがあるため、他のオプションについては、このメソッドのドキュメントを確認してください。

    response.set_cookie( :jwt, { value: 'this could be a token or whatever cookie value you wanted.', expires: 7.days.from_now, path: '/api/v1/auth', httponly: true } )

関連記事

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ yii - DetailViewで空の値をフィルタリングする