電子メールでクッキーを送信+反応アプリ


この記事では、クッキーを使用して、外部ドメインに認証されたWebコールを作成する方法について説明します.
過去数ヶ月間、私は電子+反応アプリに夢中にされている.私は私の目標は、主に学ぶことだった前に、これらの技術を使用していたことがなかった.私は仕事で私の開発者の経験を改善する機会を使用しています.私はそれを私の開発コンソールと呼ぶのが好きです.
とにかく、私は開発者コンソール内に小さなツールを作成したいと思います.これは、私が取り組んでいるソフトウェアのための再現可能なデータ構成を作成できるようになります.つまり、複雑で再現性のあるテストデータのシナリオを作成するためのワンボタンクリックシステムです.これは私がローカル開発環境と通信し、認証する必要がありました.
コミュニケーションは簡単だった fetch call , しかし認証要素は不明であった.どのように、私は私のフェッチの一部としてドメインのためにクッキーを送ることができましたか?迅速なインターネット検索は私が欲しかったものを正確に私に与えませんでした、しかし、私はいろいろな源から私が必要としたものをまとめることができました.以下は、電子のドメインのクッキーを設定する方法と、それらをどのように含めるかについての断片ですfetch .
import electron from 'electron';

function performExternalRequest() {
    const cookieJar = electron.remote.session.defaultSession.cookies;
    const cookie = { 
        url: 'https://youdomain.com',
        name: 'your-cookie-name',
        value: 'your-cookie-value'
    };

    cookieJar.set(cookie)
    .then(() => {
        fetch('https://your-api.domain/endpoint', {
            credentials: 'include'
        })
        .then((response) => {
            console.log(response);
        })
    });
}
上記の要点はhere .
上のキー要素は以下の通りです.
  • セッションのクッキーにクッキーを追加するand
  • 設定credentials フェッチリクエストオプションのプロパティ.include .
  • 前者はクッキーを設定し、リクエストに含めることができます.後者はリクエストにクッキーが含まれていることを保証します.
    設定credentials オプションは少しの議論を保証します.ブラウザのバージョンによってcredentials どちらかでしょうomit or same-origin . 前者の場合、クッキーは送られません.後者の場合、あなたの電子アプリは、あなたが通信するサーバーよりも異なるドメインにある場合は、可能性が高い場合、また、クッキーがサーバーに送信されません.あなたのアプリが別のドメインにあるときにサーバーにクッキーを送る唯一の方法はcredentials オプションinclude .
    詳細については、
  • Electron documentation on cookies
  • Mozilla documentation on fetch
  • 注意:fetch それは私の質問が存在したコンテキストの重要な要素であったので、私は反応に排他的ではない、私はこのポストの反応に言及します.