Pertanyaan Mengirim cookie dengan menggunakan websockets asli


Jadi saya menggunakan reaktan asli websockets tetapi tidak dapat mengetahui bagaimana saya dapat menyertakan cookie di websockets, ada saran?


6
2018-05-16 03:50


asal


Jawaban:


Saat ini tidak ada cara otomatis untuk melakukannya. Ada parameter ketiga (tidak terdokumentasi) untuk konstruktor WebSocket untuk meneruskan header HTTP khusus ke permintaan koneksi.

WebSocket(url, '', {Cookie: 'key=value'});

Ini berfungsi di iOS, saya belum mengujinya di Android tetapi implementasi WebSocket terlihat seperti didukung di sana juga.

Jika Anda hanya perlu mengirimkan id sesi atau token autentikasi, mungkin lebih mudah untuk menyampaikannya sebagai param GET dalam url. Mengandalkan perilaku tidak terdokumentasi dalam kerangka kerja yang berubah cepat bisa berbahaya.


4
2018-05-16 10:41



Pada React Native 0.38, ini seharusnya terjadi secara otomatis di Android.

Ada saat ini sebuah PR terbuka untuk membuatnya bekerja secara otomatis di iOS juga, tetapi pada saat ini tampaknya masih ada beberapa pekerjaan yang tersisa di sana di sekitar pengujian.

Sementara itu, Anda bisa mengikuti "pendekatan manual" yang diusulkan sini:

Pendekatan manual adalah mengambil cookie melalui plugin pengelola cookie dan menyebarkannya sebagai header ke soket web.

(Setelah Anda memiliki cookie dari pengelola, cara untuk meneruskannya ke websocket adalah, seperti yang disebutkan sebelumnya, untuk menggunakan parameter ke 3 yang tidak terdokumentasi WebSocket.)


0
2018-03-22 21:15