Sails.js + paspor di belakang proxy Nginx

Saya telah memulai proyek Sails.js baru dan ingin menerapkan paspor-twitter untuk otentikasi.

Semuanya diimplementasikan dengan benar menggunakan modul Sails-generator-auth, tetapi setelah otorisasi Twitter saya dialihkan ke sana

http://localhost:9090/auth/twitter/callback

Layar berjalan di belakang nginx di localhost:9090 - bagaimana cara mengganti nama host?

Sejauh ini saya mencoba mengatur app.set('trust proxy'); di config/env/development.js

   http: {
    customMiddleware: function(app) {
      console.log('trust proxy');
      app.enable('trust proxy');
    }
  },

Saya melihat keluaran console.log ketika saya mengangkat layar, tetapi itu tidak mempengaruhi pengalihan.


person Steffen    schedule 14.10.2014    source sumber


Jawaban (1)


Jawabannya sederhana, namun tidak terdokumentasi dengan baik. Ada postingan lain yang sebenarnya membahas masalah yang sedikit berbeda, tetapi mengarah ke jawaban yang benar: Cara mendapatkan alamat domain saat ini di Sails.js

Jika Anda menggunakan Sails v0.10.x, Anda dapat menggunakan Sails.getBaseurl() untuk mendapatkan protokol, domain, dan port lengkap tempat aplikasi Anda dilayani. Dimulai dengan Sails v0.10.0-rc6, ini juga memeriksa Sails.config.proxyHost dan Sails.config.proxyPort, yang dapat Anda atur secara manual di salah satu file konfigurasi Anda (seperti config/local.js) jika aplikasi Anda sedang disajikan melalui proxy (misalnya jika diterapkan di Modulus.io, atau diproksi melalui server Nginx).

Benar untuk mengonfigurasi instance layar ke localhost:9090, tetapi jika Anda ingin mengubah nama host/port di belakang proxy, Anda harus mengonfigurasi proxyHostdan proxyPort - ini dapat dilakukan di mana saja, tetapi paling cocok di local.js

person Steffen    schedule 14.10.2014
comment
/* contoh local.js */ module.exports = { proxyHost: 'some.domain' }; - person Keith John Hutchison; 12.10.2015