‫-: Dalam kuliah ini, kita akan
‫dengan cepat mempelajari cara menguji koneksi https yang aman, dengan
‫Heroku, karena
‫kita benar-benar membutuhkannya, pada satu
‫titik, di aplikasi kita.
‫Jadi, mari kita pergi ke sini ke pengontrol otentikasi kami.
‫Dan di sini di atas,
‫dalam fungsi buat token terkirim ini,
‫inilah tempat kami mengatur cookie
‫web yang berdekatan untuk mengamankan, jika kami
‫sedang dalam produksi.
‫Ingat bahwa.
‫Jadi, ingat bahwa kami membuat fungsi ini
‫dengan respons yang
‫berdekatan, ia juga mengirimkan
‫cookie, yang juga berisi token web yang berdekatan.
‫Dan cookie itu memiliki beberapa opsi.
‫Yang pertama, saat habis masa berlakunya.
‫Yang
‫kedua, yang pada dasarnya hanya dapat diakses melalui http.
‫Dan kemudian, ketika kami sedang
‫dalam produksi, kami mengatakan bahwa cookie ini hanya
‫dapat dikirim pada koneksi yang aman.
‫Jadi, pada dasarnya, pada koneksi https.
‫Baiklah.
‫Sekarang, masalahnya adalah
‫fakta bahwa kami sedang dalam
‫produksi, tidak berarti bahwa koneksi benar-benar aman.
‫Benar?
‫Karena tentu saja, tidak semua aplikasi
‫yang di-deploy secara otomatis disetel ke https.
‫Jadi kita perlu mengubah ini jika itu yang kita miliki di sini.
‫Baiklah.
‫Sekarang, secara ekspres kami sebenarnya memiliki properti aman
‫yang ada dalam permintaan.
‫Dan hanya
‫jika koneksi aman, maka permintaan dot secure ini benar.
‫Oke?
‫Masuk akal, bukan?
‫Sekarang masalahnya adalah, sebenarnya di Heroku,
‫ini tidak berhasil.
‫Dan itu karena
‫proksi Heroku, jadi pada dasarnya mengarahkan ulang atau memodifikasi semua permintaan yang
‫masuk ke dalam aplikasi kita sebelum benar-benar mencapai aplikasi.
‫Baiklah.
‫Jadi, agar ini juga berfungsi di Heroku, kita
‫juga perlu menguji apakah x forward proto
‫header disetel ke https.
‫Baiklah.
‫Jadi, kedengarannya agak
‫membingungkan, tetapi sekali lagi, ini adalah sesuatu yang dilakukan Heroku secara internal.
‫Jadi, mari kita uji di sini apakah req. aman adalah
‫benar, atau jika req. header.
‫Dan header yang kita cari adalah x forwarded proto.
‫Dan header ini disetel ke https jika kita berada
‫pada koneksi yang aman.
‫Baiklah?
‫Jadi, ini adalah sesuatu yang sangat khusus untuk Heroku.
‫Dan itulah mengapa saya meninggalkan ini di sini untuk bagian
‫terakhir, setelah kami menerapkan aplikasi.
‫Jadi, jika salah satu req. secure adalah benar, atau
‫jika tajuk ini di sini disetel ke https, maka kami
‫ingin opsi aman di sini disetel ke benar.
‫Dan, jadi, kita sebenarnya bisa melakukan refactor ini.
‫Jadi, pada dasarnya kita dapat mengambil ini,
‫karena ini akan menjadi kenyataan.
‫Dan, jadi, saya katakan jika
‫ini benar, maka katakanlah sama benarnya di sini.
‫Jadi, itu tidak masuk akal.
‫Kita malah bisa melakukannya seperti ini.
‫Baiklah?
‫Dan, sebenarnya, kita bisa melangkah lebih jauh.
‫Dan letakkan opsi aman di sini.
‫Jadi, mengapa harus di luar jika kita bisa meletakkannya di sini?
‫Jadi, aman sama dengan ini, oke?
‫Dan kemudian kita tidak lagi membutuhkan ini.
‫Dan, karena kita sedang melakukan
‫refactoring, kita sebenarnya tidak lagi membutuhkan variabel ini di sini sama sekali.
‫Jadi, mari kita taruh di sini, berikan brankas,
‫dan ada yang salah di sana.
‫Oke, jadi, sekarang masalahnya adalah
‫tidak memiliki akses saat ini ke permintaan
‫dalam fungsi ini.
‫Oke, jadi, kita perlu menambahkannya di sini.
‫Permintaan dan kemudian di mana pun kita membuat token terkirim, tentu saja
‫kita harus memasukkan permintaan di sana.
‫Jadi, itu di sini.
‫Jadi, gunakan perintah D untuk menemukan yang berikutnya pada dasarnya.
‫Permintaan di sini.
‫Dan akhirnya di sini juga.
‫Oke, jadi, itu terlihat jauh lebih
‫bagus dan juga harus bekerja jauh lebih bagus dari sebelumnya.
‫Namun, saat ini, ini masih tidak akan berhasil, karena
‫hanya ada satu hal lagi yang perlu
‫kita lakukan, yang pada dasarnya adalah membuat proxy kepercayaan aplikasi kita.
‫Jadi, sekali lagi, request dot
‫secure tidak berfungsi sejak awal karena Heroku bertindak
‫sebagai proxy, yang mengalihkan dan memodifikasi permintaan yang masuk.
‫Dan, jadi, kita perlu pergi ke app dot JS
‫dan kemudian tepat setelah yang ini di sini,
‫sekarang mari kita percaya pada proxy.
‫Dan kami melakukannya dengan mengatakan app dot enable trust proxy.
‫Oke?
‫Jadi, ini adalah sesuatu yang dibangun untuk
‫mengekspresikan situasi seperti ini.
‫Baiklah?
‫Jadi, hanya jika kita memiliki pengaturan ini di sini
‫dengan benar, maka header ini di sini akan diatur dengan
‫benar, dan kita akan dapat membaca nilainya.
‫Baiklah?
‫Jadi, beginilah cara Anda menguji apakah koneksi aman atau tidak,
‫saat aplikasi Anda di-deploy ke Heroku.