Realtime: La documentation JWT v0.10.x semble floue?

Créé le 28 janv. 2021  ·  2Commentaires  ·  Source: supabase/realtime

Question

Avec la version actuelle de @supabase/realtime-js je ne parviens pas à me connecter à la dernière version de @supabase/realtime . Suite à la documentation des changements de rupture de la v0.10, que sont censées inclure les demandes d'ouverture de client?

Un paramètre de requête token ? Un header ?

Reproduire

docker-compose.yml

version: "3"
services:
  realtime:
    image: supabase/realtime:latest
    ports:
      - "4000:4000"
    environment:
      DB_HOST: db
      DB_NAME: postgres
      DB_USER: postgres
      DB_PASSWORD: postgres
      DB_PORT: 5432
      PORT: 4000
      HOSTNAME: localhost
      JWT_SECRET: SOMETHING_SUPER_SECRET
      SECURE_CHANNELS: "true"
    depends_on:
      - db
  db:
    image: supabase/postgres
    ports:
      - "5432:5432"
    command:
      - postgres
      - -c
      - wal_level=logical
    environment:
      POSTGRES_PASSWORD: postgres

index.js

const { RealtimeClient } = require("@supabase/realtime-js")

const client = new RealtimeClient("ws://localhost:4000/socket")
client.onOpen(() => console.log("Socket opened."))
client.onClose(() => console.log("Socket closed."))
client.onError((e) => console.log("Socket error", e.message))
client.connect()

Sortie de borne

realtime_1  | 2021-01-28 16:01:20.162 [info] Running RealtimeWeb.Endpoint with cowboy 2.6.3 at :::4000 (http)
realtime_1  | 2021-01-28 16:01:20.162 [info] Access RealtimeWeb.Endpoint at http://localhost:4000
realtime_1  | 2021-01-28 16:03:25.018 [info] REFUSED CONNECTION TO RealtimeWeb.UserSocket in 114µs
realtime_1  |   Transport: :websocket
realtime_1  |   Serializer: Phoenix.Socket.V1.JSONSerializer
realtime_1  |   Connect Info: %{}
realtime_1  |   Parameters: %{"vsn" => "1.0.0"}
realtime_1  | 2021-01-28 16:03:26.033 [info] REFUSED CONNECTION TO RealtimeWeb.UserSocket in 100µs

Sortie d'application

realtime-test-js % node .
Socket error undefined
Socket closed.
Socket error undefined
Socket closed.

Comportement prévisible

Une connexion à la socket en temps réel.

Informations système

  • OS: macOS - docker
  • Version de realtime-js: 1.0.6
bug

Commentaire le plus utile

@ w3b6x9 génial, c'est exactement ce que je cherchais, merci! Essayer d'écrire la bibliothèque @supabase/realtime-csharp et avoir du mal à comprendre comment passer le token .

Tous les 2 commentaires

@acupofjose nous sommes en train d'activer l'authentification JWT en temps réel, alors nous vous

On dirait que SECURE_CHANNELS est déjà défini sur "true" dans votre docker-compose.yml , ce qui signifie que vous devrez définir votre JWT_SECRET sur le secret utilisé pour signer votre JWT . Ensuite, vous pouvez passer votre JWT comme ceci:

const client = new RealtimeClient("ws://localhost:4000/socket", { params: { token: "your_jwt" }})

Si vous ne souhaitez pas activer l'authentification JWT, vous pouvez définir SECURE_CHANNELS sur "false" et tout devrait continuer à fonctionner comme prévu. Lorsque SECURE_CHANNELS est défini sur "false" , vous n'avez pas besoin de définir JWT_SECRET .

Je vais mettre @supabase/realtime-js jour la documentation de

Faites-moi savoir si vous avez d'autres questions.

J'espère que cela a aidé!

@ w3b6x9 génial, c'est exactement ce que je cherchais, merci! Essayer d'écrire la bibliothèque @supabase/realtime-csharp et avoir du mal à comprendre comment passer le token .

Cette page vous a été utile?
0 / 5 - 0 notes