diff --git a/guides/presence.md b/guides/presence.md index f3bb602f90..3ce7b8a396 100644 --- a/guides/presence.md +++ b/guides/presence.md @@ -64,7 +64,7 @@ end We also need to change our connect function to take a `user_id` from the params and assign it on the socket. In production you may want to use `Phoenix.Token` if you have real users that are authenticated. ```elixir -def connect(params, socket) do +def connect(params, socket, _connect_info) do {:ok, assign(socket, :user_id, params["user_id"])} end ``` diff --git a/lib/phoenix/token.ex b/lib/phoenix/token.ex index 9226e90291..f89c89d33d 100644 --- a/lib/phoenix/token.ex +++ b/lib/phoenix/token.ex @@ -69,7 +69,7 @@ defmodule Phoenix.Token do defmodule MyApp.UserSocket do use Phoenix.Socket - def connect(%{"token" => token}, socket) do + def connect(%{"token" => token}, socket, _connect_info) do case Phoenix.Token.verify(socket, "user salt", token, max_age: 86400) do {:ok, user_id} -> socket = assign(socket, :user, Repo.get!(User, user_id)) @@ -78,6 +78,8 @@ defmodule Phoenix.Token do :error end end + + def connect(_params, _socket, _connect_info), do: :error end In this example, the phoenix.js client will send the token in the