Sails.js + พาสปอร์ตด้านหลังพร็อกซี Nginx

ฉันได้เริ่มโครงการ Sails.js ใหม่และต้องการใช้ Passport-twitter สำหรับการตรวจสอบสิทธิ์

ทุกอย่างได้รับการดำเนินการอย่างถูกต้องโดยใช้โมดูล sails-generator-auth แต่หลังจากการอนุญาตของ Twitter ฉันจะถูกเปลี่ยนเส้นทางไป

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

Sails ทำงานอยู่หลัง nginx บน localhost: 9090 - ฉันจะแทนที่ชื่อโฮสต์ได้อย่างไร

จนถึงตอนนี้ฉันลองตั้งค่า app.set('trust proxy'); ใน config/env/development.js

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

ฉันเห็นเอาต์พุต console.log เมื่อฉันยกใบเรือ แต่มันไม่ส่งผลต่อการเปลี่ยนเส้นทาง


person Steffen    schedule 14.10.2014    source แหล่งที่มา


คำตอบ (1)


คำตอบนั้นง่าย แต่มีเอกสารไม่ครบถ้วน มีอีกโพสต์หนึ่งที่พูดถึงปัญหาที่แตกต่างกันเล็กน้อย แต่นำไปสู่คำตอบที่ถูกต้อง: วิธีรับที่อยู่โดเมนปัจจุบันใน sails.js

หากคุณใช้ Sails v0.10.x คุณสามารถใช้ sails.getBaseurl() เพื่อรับโปรโตคอล โดเมน และพอร์ตแบบเต็มที่แอปของคุณให้บริการ เริ่มต้นด้วย Sails v0.10.0-rc6 ซึ่งจะตรวจสอบ sails.config.proxyHost และ sails.config.proxyPort ซึ่งคุณสามารถตั้งค่าด้วยตนเองในไฟล์กำหนดค่าไฟล์ใดไฟล์หนึ่งของคุณ (เช่น config/local.js) หากแอปของคุณกำลัง ให้บริการผ่านพร็อกซี (เช่น หากใช้งานบน Modulus.io หรือพร็อกซีผ่านเซิร์ฟเวอร์ Nginx)

การกำหนดค่า sails instance เป็น localhost:9090 นั้นถูกต้อง แต่ถ้าคุณต้องการเปลี่ยนชื่อโฮสต์/พอร์ตที่อยู่ด้านหลังพร็อกซี คุณต้องกำหนดค่า proxyHostและ proxyPort ซึ่งสามารถทำได้ทุกที่ แต่เหมาะสมที่สุดใน local.js

person Steffen    schedule 14.10.2014
comment
/* ตัวอย่าง local.js */ module.exports = { proxyHost: 'some.domain' }; - person Keith John Hutchison; 12.10.2015