Мы используем Guardian для генерации токенов, которые затем используем для аутентификации при подключении к сокету Phoenix Channels.
Недавно мы обнаружили, что некоторые пользователи никогда не покидают определенные страницы, и примерно через месяц токенстановится недействительным, что делает недействительной попытку подключения к каналам Phoenix.
Как вы справляетесь с такими случаями на стороне клиента?Есть ли какая-то конкретная ошибка, которую можно вернуть из Феникса, чтобы сообщить клиенту, в чем причина?Наша connect
функция в user_socket.ex
выглядит так:
def connect(%{"guardian_token" => token}, socket) do
case Guardian.Phoenix.Socket.authenticate(socket, MyApp.Guardian, token) do
{:ok, authed_socket} ->
{:ok, authed_socket}
{:error, _} ->
:error
end
end
Есть ли способ зафиксировать эту ошибку, используя библиотеку Phoenix JS для каналов Phoenix?Наша цель: 1) остановить повторные попытки, если токен истек, 2) потенциально выйти из системы или показать сообщение о том, что пользователь не в сети.Мы проверили документацию Phoenix JS , но не нашли ничего подходящего.