Skip to content

Commit fa22b07

Browse files
committed
feat(endpoint): pass checking function to corsica origins
this valid_origin? takes origins config from env and uses Corsica.allowed_origin? to check if the incoming request is valid
1 parent bf6d998 commit fa22b07

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

lib/epochtalk_server_web/endpoint.ex

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,19 @@ defmodule EpochtalkServerWeb.Endpoint do
66
plug RemoteIp
77

88
# cors configuration
9-
corsica_config = Application.get_env(:epochtalk_server, :corsica)
109
plug Corsica,
11-
origins: corsica_config.origins,
10+
origins: {__MODULE__, :valid_origin?, []},
1211
allow_headers: :all,
1312
allow_credentials: false,
1413
allow_private_network: true,
1514
expose_headers: ["epoch-viewer", "api-key", "x-api-key"]
1615

16+
def valid_origin?(conn, _origin) do
17+
origins = Application.get_env(:epochtalk_server, :corsica).origins
18+
options = %Corsica.Options{origins: origins}
19+
Corsica.allowed_origin?(conn, options)
20+
end
21+
1722
socket "/socket", EpochtalkServerWeb.UserSocket,
1823
websocket: true,
1924
longpoll: false

0 commit comments

Comments
 (0)