diff --git a/lib/epochtalk_server_web/endpoint.ex b/lib/epochtalk_server_web/endpoint.ex index 28cb052a..d340adea 100644 --- a/lib/epochtalk_server_web/endpoint.ex +++ b/lib/epochtalk_server_web/endpoint.ex @@ -6,14 +6,19 @@ defmodule EpochtalkServerWeb.Endpoint do plug RemoteIp # cors configuration - corsica_config = Application.get_env(:epochtalk_server, :corsica) plug Corsica, - origins: corsica_config.origins, + origins: {__MODULE__, :valid_origin?, []}, allow_headers: :all, allow_credentials: false, allow_private_network: true, expose_headers: ["epoch-viewer", "api-key", "x-api-key"] + def valid_origin?(conn, _origin) do + origins = Application.get_env(:epochtalk_server, :corsica).origins + options = %Corsica.Options{origins: origins} + Corsica.allowed_origin?(conn, options) + end + socket "/socket", EpochtalkServerWeb.UserSocket, websocket: true, longpoll: false