Mashery IODocs - Bisakah ini mendukung otentikasi paspor dari REST API saya?

Saya menggunakan iodocs dari Mashery untuk menjadi pengembang front-end untuk REST API saya. API saya ditulis dengan Node/Express, dan menggunakan PassportJS untuk mengautentikasi pengguna (strategi lokal). Implementasi saya mengharuskan pengguna untuk menggunakan titik akhir /login, dengan memasukkan nama pengguna dan kata sandi. Kemudian, Passport membuat serial pengguna dalam cookie, sehingga permintaan selanjutnya tidak perlu login.

Saat menggunakan iodocs, cookie yang disetel Passport ("connect.sid") tidak diteruskan kembali pada permintaan berikutnya.

Apakah ada cara untuk melakukan ini? Apakah ada metode otentikasi yang didukung IODocs yang berfungsi seperti ini?


person Scott Switzer    schedule 18.01.2013    source sumber
comment
BTW - Saya menjalankan iodocs di localhost:3001 dan REST API saya di localhost:3000. Saya curiga cookie tidak dapat diteruskan antar port yang berbeda - saya akan mengatur nginx sebagai proxy dan mencoba lagi.   -  person Scott Switzer    schedule 18.01.2013


Jawaban (1)


Cookie AKAN melintasi port. Masalah yang mungkin Anda temui adalah "connect.sid" juga disetel oleh I/O Docs karena menggunakan modul middleware Express session.js, sehingga nilai cookie mungkin ditimpa.

Coba perbarui I/O Docs app.js dengan nama cookie yang berbeda di penginisialisasi sesi -- atur nilai "kunci":

app.use(express.session({
    secret: config.sessionSecret,
    key: 'iodocs.connect.sid',
    store:  new RedisStore({
        'host':   config.redis.host,
        'port':   config.redis.port,
        'pass':   config.redis.password,
        'maxAge': 1209600000
    })
}));
person mansilladev    schedule 04.03.2013